# uopz_compose

(PECL uopz 1, PECL uopz 2)

uopz_compose — Compose 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"
    }