Составить класс

# uopz_compose

(PECL uopz 1, PECL uopz 2)

uopz_compose — Составить класс

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

### Описание

function uopz_compose(
string `$name`,
array `$classes`,
array `$methods` = ?,
array `$properties` = ?,
int `$flags` = ?
): void

Создаёт класс заданного имени, который реализует, наследует или использует все предоставленные классы

### Список параметров

`name`

  Корректное имя класса

`classes`

  Массив имён классов, интерфейсов и трейтов

`methods`

  Ассоциативный массив методов, где значения либо замыкания, либо представлены структурой [модификаторы => замыкание]

`properties`

  Ассоциативный массив свойств, где ключи - имена, а значения - модификаторы

`flags`

  Тип записи, по умолчанию ZEND_ACC_CLASS

### Возвращаемые значения

### Примеры

Пример #1 Пример использования 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));
    ?>

Результат выполнения приведённого примера:

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open