v

PHP ANOTATION , Reflection

· 14년 전 · 1690
PHP 에서도 anotation 드리븐을 구현 할 수 있을거 같내요 ㅎ;
 
잘만 활용 하면, spring framework 장점만 경량화 하여
 php 진영에서도 ... framework 도 나오지 않을가 하는
생각을 문득 해봤습니다.
 
------------------------------------------------------------------
 
 
/** @Table("people") */ 
class Person { 
   
// some code 
}
 
$reflection = new ReflectionAnnotatedClass('Person'); // by class name 
$reflection
->getAnnotation('Table')->value; // contains string "people"
 
----------------------------------------------------------------------
 
class RolesAllowed extends Annotation {} 
 
/** @RolesAllowed({'admin', 'web-editor'}) */ 
class CMS { 
 
// some code 
} 
 
$reflection
= new ReflectionAnnotatedClass('CMS'); 
$annotation
= $reflection->getAnnotation('RolesAllowed'); 
$annotation
->value; // contains array('admin', 'web-editor'
 
 
-------------------------------------------------------------
 
/** @Mapping(inheritance = @SingleTableInheritance, columns = {@ColumnMapping('id'), @ColumnMapping('name')}) */ 
class Person {} 
 
$reflection
= new ReflectionAnnotatedClass('Person'); 
$annotation
= $reflection->getAnnotation('Mapping'); 
$annotation
->inheritance; // SingleTableInheritance annotation 
$annotation
->columns; // array of ColumnMapping annotations 
$annotation
->columns[0]->value; // 'id'
 
 
 
 
 
 
|
댓글을 작성하시려면 로그인이 필요합니다. 로그인

개발자팁

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
PHP 14년 전 조회 2,360
JavaScript 14년 전 조회 1,983
PHP 14년 전 조회 6,054
기타 14년 전 조회 6,638
기타 14년 전 조회 2,403
node.js 14년 전 조회 4,263
JavaScript 14년 전 조회 5,263
PHP 14년 전 조회 2,488
PHP 14년 전 조회 3,443
JavaScript 14년 전 조회 2,688
node.js 14년 전 조회 3,270
jQuery 14년 전 조회 2,724
PHP 14년 전 조회 2,282
PHP 14년 전 조회 3,480
PHP 14년 전 조회 1,691
jQuery 14년 전 조회 2,222
node.js 14년 전 조회 1,994
node.js 14년 전 조회 2,051
node.js 14년 전 조회 2,197
PHP 14년 전 조회 1,973
MySQL 14년 전 조회 3,301
PHP 14년 전 조회 3,422
PHP 14년 전 조회 2,059
JavaScript 14년 전 조회 1,996
기타 14년 전 조회 2,604
JavaScript 14년 전 조회 1,712
jQuery 14년 전 조회 9,250
PHP 14년 전 조회 6,892
기타 14년 전 조회 2,404
Linux 14년 전 조회 3,224
🐛 버그신고