Blog de Gonzalo

ANOTACIONES EN PHP

En muchos lenguajes de programación se usan las anotaciones para indicarle a la aplicación pare definir ciertos comportamientos o como se van a tartar los datos. Dichas anotaciones están puestas como comentarios en el código.
Por ejemplo en php el ORM doctrine usa las anotaciones en php para indicar el tipo de relación que tiene una tabla con otra. el tipo de dato que es un atributo, etc...
Pero...¿y si estamos realizando un proyecto y queremo tratar nuestras propias anotaciones? ¿cómo obtenemos dichas anotaciones? La respuesta es muy fácil: con la clase ReflectionClass de php y con el método getDocComment.
Veamos un ejemplo:


/**
* table="author"
*/
class AuthorEntity
{
/**
* relation_table="books"
* relation_field="author_id"
*/
 public function GetAuthorBooks()
 {
     ...
 }

}


Se que la clase es bastante simple pero para explicar las anotaciones en php de una forma sencilla.
En el código de arriba tenemos una clase author que va usar la tabla "author" en nuestra base de datos y que el método GetAuthorBooks obtiene los libros del author y se le india la tabla y el id de dicha relación. Bien ahora voy a explicar como obtener esos comentarios (anotaciones) para poder establecer las relaciones para hacer las queries

$reflector = new ReflectionClass('AuthorEntity');
//Muestra /** * table="author" */
echo $reflector->getDocComment();

/**********/

/** * relation_table="books" * relation_field="author_id" */
echo $reflector->getMethod('GetAuthorBooks')->getDocComment();

En la segunda llamada de getDocComment se le especifica el nombre del método.
Espero que con este sencillo ejemplo os sirva para saber como funcionan las anotaciones en php.

Compartir en twitter