Halo, nama saya Agung. Berasal dari Denpasar, Bali. Blog ini adalah blog harian saya, dari tips dan trick code, curahan hati, dan beberapa tulisan tidak penting.

Menu & Search

PHP Annotation

September 8, 2011

Annotation memberikan meta data dari code yang dibuat oleh programmer sehingga code dapat lebih rapi dan mudah untuk di manage. Selain itu Annotation memberikan jalan pintas untuk boiler plate code. Tapi sayang PHP sendiri tidak memiliki native support terhadap Annotation.

Tapi beruntung sekali terdapat sebuah library yang memberikan support untuk php yang meng extend class reflection dari php. Library dapat di download di http://code.google.com/p/addendum/.

Library Addendum tersebut memberikan support kepada php yang mana menambahkan fungsi dari comment menjadi menjadi fungsi annotation. Sehingga class / method / property dapat memiki annotation layak nya bahasa pemrograman lain.

Cara penggunaan library ini juga sangat mudah , library tinggal di include ke source code, gunakan comment sebagai annotation, dan kita siap memecah – mecah class dan mengambil meta data yang terdapat pada annotation.

Misalkan kita memiliki class AdminResource seperti berikut :

/**
 * @Secure("admin")
 */
class AdminResource{}

kemudian kita ekstrak meta data dari class tersebut dengan :

require_once(dirname(__FILE__).'/annotations.php');
require_once(dirname(__FILE__).'/AdminResource.php');

// buat descripsi anotasi dengan nama Secure
class Secure extends Annotation {}

// instantiate class AdminResource
$resources = new AdminResource();

// instantiate class ReflectionAnnotatedClass 
$annotatedReflection = new ReflectionAnnotatedClass($resources);

// ReflectionAnnotatedClass merupakan turunan dari ReflectionClass, 
// sehingga memiliki akses ke semua method dari ReflectionClass
echo $annotatedReflection->getName() . 
		" is accessible for  : " . 
		$annotatedReflection->getAnnotation('Secure')->value;

Keluaran dari code tersebut adalah :

AdminResource is accessible for : Admin

Nah, annotasi tersebut juga dapat di deklarasikan pada method ataupun property dari class. Dengan penggunaan library ini, tentu sangat memudahkan programmer PHP untuk menciptakan sebuah program yang lebih rapi dan lebih mudah dibaca.

Dengan annotasi ini, PHP juga dapat di transformasi sehingga memiliki kemampuan serupa dengan Spring framework pada java. Termasuk juga dependency injection dapat juga di clone pada php. Di tulisan saya selanjut nya, akan saya gabungkan Codeigniter dan Annotation tersebut sehingga dapat melindungi resource dalam implementasinya bersama dengan ACL.

Have fun !

Related article

Sekolah Anak

Beberapa hari lalu, istri bertanya kepada saya, kemana anak kami…

Istri, IRT atau Kerja atau Usaha?

Pernah ga cowo – cowo yang akan nikah berpikir, istri…

Apple Vision Pro dan Facebook

Beberapa bulan lalu, apple merelease sebuah product disebut Apple Vision…

Discussion about this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Type your search keyword, and press enter to search