(PECL uopz >= 1.0.0)
uopz_compose — Compose une classe
$name
, array $classes
[, array $methods
[, array $properties
[, int $flags
]]] )Crée une nouvelle classe de nom spécifié, qui implémente, étend ou utilise toutes les classes fournies.
name
Un nom de classe valide
classes
Un tableau de classes, d'interfaces ou de noms trait
methods
Un tableau associatif de méthodes ; les valeurs sont soit des closures, soit des [modifiers => closure]
properties
Un tableau associatif de propriétés, ayant comme clés les noms, et comme valeurs, les modificateurs
flags
Type d'entrée ; par défaut, ZEND_ACC_CLASS
Exemple #1 Exemple avec uopz_compose()
<?php
class myClass {}
trait myTrait {}
interface myInterface {}
uopz_compose(
Composed::class, [
myClass::class,
myTrait::class,
myInterface::class
], [
"__construct" => function() {
/* ... */
}
]);
var_dump(
class_uses(Composed::class),
class_parents(Composed::class),
class_implements(Composed::class));
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
array(1) { ["myTrait"]=> string(7) "myTrait" } array(1) { ["myClass"]=> string(7) "myClass" } array(1) { ["myInterface"]=> string(11) "myInterface" }