Startup, dan Leverage dalam usaha
Kita tau belakangan ini banyak startup berguguran. Bahkan di sebuah…
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 !
Discussion about this post