# uopz_compose

(PECL uopz 1, PECL uopz 2)

uopz_compose — Compose a class

Warning

This function has been REMOVED in PECL uopz 5.0.0.

### 说明

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

Creates a new class of the given name that implements, extends, or uses all of the provided classes

### 参数

`name`

  A legal class name

`classes`

  An array of class, interface and trait names

`methods`

  An associative array of methods, values are either closures or [modifiers => closure]

`properties`

  An associative array of properties, keys are names, values are modifiers

`flags`

  Entry type, by default ZEND_ACC_CLASS

### 返回值

### 范例

Example #1 uopz_compose() example

    <?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));
    ?>

以上例程会输出：

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