uopz_compose

(PECL uopz 1, PECL uopz 2)

uopz_composeCompose une classe

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_compose ( string $name , array $classes [, array $methods [, array $properties [, int $flags ]]] ) : void

Crée une nouvelle classe de nom spécifié, qui implémente, étend ou utilise toutes les classes fournies.

Liste de paramètres

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

Valeurs de retour

Exemples

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 :

array(1) {
  ["myTrait"]=>
  string(7) "myTrait"
}
array(1) {
  ["myClass"]=>
  string(7) "myClass"
}
array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}