v

PHP ANOTATION , Reflection

· 14년 전 · 1691
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,362
JavaScript 14년 전 조회 1,988
PHP 14년 전 조회 6,057
기타 14년 전 조회 6,641
기타 14년 전 조회 2,407
node.js 14년 전 조회 4,265
JavaScript 14년 전 조회 5,265
PHP 14년 전 조회 2,490
PHP 14년 전 조회 3,444
JavaScript 14년 전 조회 2,691
node.js 14년 전 조회 3,274
jQuery 14년 전 조회 2,725
PHP 14년 전 조회 2,286
PHP 14년 전 조회 3,485
PHP 14년 전 조회 1,692
jQuery 14년 전 조회 2,224
node.js 14년 전 조회 1,996
node.js 14년 전 조회 2,053
node.js 14년 전 조회 2,199
PHP 14년 전 조회 1,975
MySQL 14년 전 조회 3,305
PHP 14년 전 조회 3,425
PHP 14년 전 조회 2,061
JavaScript 14년 전 조회 1,998
기타 14년 전 조회 2,608
JavaScript 14년 전 조회 1,714
jQuery 14년 전 조회 9,256
PHP 14년 전 조회 6,894
기타 14년 전 조회 2,404
Linux 14년 전 조회 3,229
🐛 버그신고