v

PHP ANOTATION , Reflection

· 14년 전 · 1782
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,424
JavaScript 14년 전 조회 2,057
PHP 14년 전 조회 6,106
기타 14년 전 조회 6,697
기타 14년 전 조회 2,467
node.js 14년 전 조회 4,332
JavaScript 14년 전 조회 5,329
PHP 14년 전 조회 2,554
PHP 14년 전 조회 3,514
JavaScript 14년 전 조회 2,743
node.js 14년 전 조회 3,337
jQuery 14년 전 조회 2,785
PHP 14년 전 조회 2,350
PHP 14년 전 조회 3,542
PHP 14년 전 조회 1,783
jQuery 14년 전 조회 2,279
node.js 14년 전 조회 2,052
node.js 14년 전 조회 2,114
node.js 14년 전 조회 2,282
PHP 14년 전 조회 2,035
MySQL 14년 전 조회 3,364
PHP 14년 전 조회 3,481
PHP 14년 전 조회 2,119
JavaScript 14년 전 조회 2,056
기타 14년 전 조회 2,672
JavaScript 14년 전 조회 1,779
jQuery 14년 전 조회 9,324
PHP 14년 전 조회 6,960
기타 14년 전 조회 2,465
Linux 14년 전 조회 3,280