v

PHP ANOTATION , Reflection

· 14년 전 · 1788
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,427
JavaScript 14년 전 조회 2,059
PHP 14년 전 조회 6,108
기타 14년 전 조회 6,699
기타 14년 전 조회 2,470
node.js 14년 전 조회 4,334
JavaScript 14년 전 조회 5,330
PHP 14년 전 조회 2,556
PHP 14년 전 조회 3,515
JavaScript 14년 전 조회 2,745
node.js 14년 전 조회 3,339
jQuery 14년 전 조회 2,789
PHP 14년 전 조회 2,350
PHP 14년 전 조회 3,544
PHP 14년 전 조회 1,789
jQuery 14년 전 조회 2,282
node.js 14년 전 조회 2,055
node.js 14년 전 조회 2,115
node.js 14년 전 조회 2,284
PHP 14년 전 조회 2,036
MySQL 14년 전 조회 3,367
PHP 14년 전 조회 3,483
PHP 14년 전 조회 2,120
JavaScript 14년 전 조회 2,057
기타 14년 전 조회 2,672
JavaScript 14년 전 조회 1,781
jQuery 14년 전 조회 9,325
PHP 14년 전 조회 6,961
기타 14년 전 조회 2,466
Linux 14년 전 조회 3,281