Diferencia entre revisiones de «Traits»
Ir a la navegación
Ir a la búsqueda
(No se muestran 8 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
= General = | = General = | ||
PHP solo admite herencia simple. Una clase secundaria solo puede heredar de un solo padre. | |||
¿Qué pasa si una clase necesita heredar múltiples comportamientos? Los ''traits'' de la Programación Orientada a Objetos resuelven este problema. | |||
Los traits se utilizan para declarar métodos que se pueden utilizar en varias clases. Los traits 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). | |||
Documentación oficial de traits: [https://www.php.net/manual/es/language.oop5.traits.php ES] | Documentación oficial de traits: [https://www.php.net/manual/es/language.oop5.traits.php ES] | ||
Documentación oficial de traits: [https://www.php.net/manual/en/language.oop5.traits.php EN] | Documentación oficial de traits: [https://www.php.net/manual/en/language.oop5.traits.php EN] | ||
= Sintaxis = | |||
<?php | |||
trait TraitName { | |||
// Algo de code... | |||
} | |||
Para utilizar el trait en una clase, se utiliza la palabra reservada '''use''' | |||
<?php | |||
class MyClass { | |||
use TraitName; | |||
} | |||
= Ejemplos = | |||
== Ejemplo 1 == | |||
Un solo trait se usa. | |||
<?php | |||
trait message { | |||
public function print() { | |||
echo "Proyectos Beta is fun!!!"; | |||
} | |||
} | |||
class Welcome { | |||
use message; | |||
} | |||
$object = new Welcome(); | |||
$object->print(); | |||
== Ejemplo 2 == | |||
Se utiliza múltiples traits. | |||
<?php | |||
trait message1 { | |||
public function msg1() { | |||
echo "Proyectos Beta is fun!!!"; | |||
} | |||
} | |||
trait message2 { | |||
public function msg2() { | |||
echo "Proyectos Beta is the best!"; | |||
} | |||
} | |||
class Welcome { | |||
use message1; | |||
} | |||
class Welcome2 { | |||
use message1, message2; | |||
} | |||
$object = new Welcome(); | |||
$object->msg1(); | |||
echo "\n\n"; | |||
$object2 = new Welcome2(); | |||
$object2->msg1(); | |||
$object2->msg2(); |
Revisión actual - 06:19 22 ago 2022
General
PHP solo admite herencia simple. Una clase secundaria solo puede heredar de un solo padre.
¿Qué pasa si una clase necesita heredar múltiples comportamientos? Los traits de la Programación Orientada a Objetos resuelven este problema.
Los traits se utilizan para declarar métodos que se pueden utilizar en varias clases. Los traits 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).
Documentación oficial de traits: ES
Documentación oficial de traits: EN
Sintaxis
<?php trait TraitName { // Algo de code... }
Para utilizar el trait en una clase, se utiliza la palabra reservada use
<?php class MyClass { use TraitName; }
Ejemplos
Ejemplo 1
Un solo trait se usa.
<?php trait message { public function print() { echo "Proyectos Beta is fun!!!"; } } class Welcome { use message; } $object = new Welcome(); $object->print();
Ejemplo 2
Se utiliza múltiples traits.
<?php trait message1 { public function msg1() { echo "Proyectos Beta is fun!!!"; } } trait message2 { public function msg2() { echo "Proyectos Beta is the best!"; } } class Welcome { use message1; } class Welcome2 { use message1, message2; } $object = new Welcome(); $object->msg1(); echo "\n\n"; $object2 = new Welcome2(); $object2->msg1(); $object2->msg2();