Bienvenidos sean a este post, hoy veremos una funcion de PHP.
Esta funcion nos devuelve los trait que usa una clase. Pero que es un trait? De una manera muy sencilla, se puede considerar que viene a resolver el tema de la multiple herencia. Como sabemos, tanto PHP como muchos otros lenguajes que utilizan OOP solo pueden recibir una clase madre directamente, salvo C++, y aqui entran en accion los traits. Simplemente definiendolos nos permiten ser usados en multiples clases, y estos pueden contener exactamente lo mismo que una clase ordinaria. Inclusive con sus modificadores de acceso. Con esto comentado, veamos como es su sintaxis:
class_uses(clase, autoload);
El primer parametro sera la clase que evaluaremos y el segundo parametro es para indicar si se cargara automaticamente cuando no encuentre a la clase. Para entenderlo, vamos a analizar el siguiente ejemplo:
<?php
trait trato1 {}
class clase {
use trato1;
}
print_r(class_uses(new clase));
print_r(class_uses('clase'));
?>
Primero definimos un trait llamado trato1. Este lo dejaremos vacio para facilitar nuestra comprension. Lo siguiente es la definicion de una clase y en esta usaremos al trait anterior. Como esta funcion devuelve un valor de tipo array, usamos a print_r para mostrarlo de manera sencilla. En el primer caso, usamos la forma clasica y para ello crearemos una instancia u objeto para poder pasarlo correctamente. El segundo caso pasamos el nombre de la clase, esta manera se habilito a partir de la version 5.1.8. Con esto comentado, ejecutemos para ver como es su salida:
$ php clase.php
Array
(
[trato1] => trato1
)
Array
(
[trato1] => trato1
)
$
Como pueden ver nos devolvio el trait que esta utilizando nuestra clase. Tomemos el codigo anterior y hagamos el siguiente cambio:
<?php
trait trato1 {}
trait trato2 {}
class clase {
use trato1;
use trato2;
}
print_r(class_uses(new clase));
print_r(class_uses('clase'));
?>
Agregamos un nuevo trait y lo aplicamos a nuestra clase, en la vida real ahora podriamos acceder a las propiedades y metodos de dos clases distintas como si fuera una herencia multiple. Si lo ejecutamos nuevamente obtendremos la siguiente salida:
$ php clase.php
Array
(
[trato1] => trato1
[trato2] => trato2
)
Array
(
[trato1] => trato1
[trato2] => trato2
)
$
Tenemos los dos trait de la clase y si existieran mas se iran agregando al array.
En resumen, hoy hemos visto a class_uses, que es, para que sirve, como se utiliza, y un ejemplo practico para verlo en accion. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donatión
It’s for site maintenance, thanks!
$1.50
