Rasgos en PHP
Lección 23 / 24
Php Desarrollador Php Curso php
Como hemos repetido varias veces en nuestras guías para aprender php, en la programación informática moderna, un gran enfoque es evitar la duplicación de código tanto como sea posible. Ya sabemos que el código duplicado hace que el mantenimiento del software sea mucho más difícil, ya que cada duplicado debe mantenerse constante y que un error no se puede encontrar/corregir en un solo lugar.
En el contexto de la programación orientada a objetos, algunas limitaciones estructurales de PHP pueden hacer que sea bastante difícil mantener la duplicación de código al mínimo. También hemos dicho, en capítulos anteriores, que PHP no admite la herencia múltiple y esto, por supuesto, podría llevar a la imposibilidad de reutilizar ciertos métodos en clases que, en cambio, quisieran poder usarlos sin vincularse con la herencia.
Es precisamente por eso que, a partir de la versión 5.4, PHP implementa un método de reutilización de código llamado Traits.
Traits PHP: qué son, cómo se declaran, cómo se usan
Los traits nacen con el objetivo de reducir algunas limitaciones dictadas por la herencia única de PHP, permitiendo al desarrollador web poder reutilizar una serie de métodos sin que estos tengan que ser heredados de alguna otra clase.
Tomemos por ejemplo una classe Person y una classe Dog.
class Person{}
class Dog{}
Sabemos que ni las personas ni los perros pueden volar, pero tal vez quieran hacerlo. Aquí es donde entran los rasgos: podríamos pensar que al equipar a una persona y a un perro con un jetpack, en realidad pueden volar.
trait Jetpack {
public function volo(){
echo "*Vuela alto en el cielo*\n";
}
}
Lo que tenemos que hacer ahora es especificar a la classe Person y a la classe Dog que realmente pueden usar un jetpack.
class Person{
use Jetpack;
}
class Dog{
use Jetpack;
}
A través de la palabra clave use, le decimos a las dos clases que tienen acceso a todas las propiedades y métodos del rasgo Jetpack y, por lo tanto, pueden usarlos.
$persona = new Person();
$cane = new Dog();
$persona->vuelo();
$perro->vuelo();
//Output:
*Vuela alto en el cielo*
*Vuela alto en el cielo*
De esta manera, dos clases completamente separadas, no relacionadas de ninguna manera, tienen acceso al mismo método de vuelo().
Además, una clase puede usar múltiples rasgos, sin ningún tipo de problema, ampliando aún más nuestras posibilidades.
Lo único que hay que recordar es que no podemos llamar a los rasgos con el mismo nombre que se usa para una clase.
En conclusión, los traits representan una herramienta muy importante que ayuda a mejorar el diseño de nuestras aplicaciones, eliminando la necesidad de duplicar el código y ayudándonos con la limpieza y mantenibilidad del mismo.
¡Nuestro recorrido por los meandros del lenguaje de programación PHP termina aquí!
¿Qué dices, te sientes preparado para convertirte en desarrollador web?
Anterior
22 Object Composition e..Siguiente
24 PHP template engine