PHP OOP - Rasgos
PHP - ¿Qué son los rasgos?
PHP solo admite herencia simple: una clase secundaria solo puede heredar de un solo padre.
Entonces, ¿qué pasa si una clase necesita heredar múltiples comportamientos? Los rasgos OOP resuelven este problema.
Los rasgos se utilizan para declarar métodos que se pueden utilizar en varias clases. Los rasgos pueden tener métodos y métodos abstractos que se pueden usar en varias clases, y los métodos pueden tener cualquier modificador de acceso (público, privado o protegido).
Los rasgos se declaran con la trait
palabra clave:
Sintaxis
<?php
trait TraitName {
// some code...
}
?>
Para usar un rasgo en una clase, use la
use
palabra clave:
Sintaxis
<?php
class MyClass {
use TraitName;
}
?>
Veamos un ejemplo:
Ejemplo
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
class Welcome {
use
message1;
}
$obj = new Welcome();
$obj->msg1();
?>
Ejemplo explicado
Aquí, declaramos un rasgo: mensaje1. Luego, creamos una clase: Bienvenido. La clase usa el rasgo, y todos los métodos del rasgo estarán disponibles en la clase.
Si otras clases necesitan usar la función msg1(), simplemente use el rasgo de mensaje1 en esas clases. Esto reduce la duplicación de código, porque no hay necesidad de volver a declarar el mismo método una y otra vez.
PHP - Usando Múltiples Rasgos
Veamos otro ejemplo:
Ejemplo
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
trait message2 {
public function msg2()
{
echo "OOP reduces code duplication!";
}
}
class Welcome {
use message1;
}
class Welcome2 {
use message1, message2;
}
$obj = new Welcome();
$obj->msg1();
echo "<br>";
$obj2 =
new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>
Ejemplo explicado
Aquí, declaramos dos rasgos: mensaje1 y mensaje2. Luego, creamos dos clases: Welcome y Welcome2. La primera clase (Bienvenido) usa el rasgo de mensaje1, y la segunda clase (Bienvenido2) usa los rasgos de mensaje1 y mensaje2 (múltiples rasgos están separados por comas).