# Componere

# Введение

Componere (латинский, английский: compose) предназначен для производственных окружений и предоставляет API для составления классов, обезьяньих патчей и приведения.

##### Структура:

Componere\Definition используется для определения (или переопределения) класса во время выполнения; Затем класс может быть зарегистрирован и в случае переопределения он заменяет исходный класс до тех пор, пока существует Componere\Definition.

public function Componere\Definition::__construct(string `$name`)
public function Componere\Definition::__construct(string `$name`, string `$parent`)
public function Componere\Definition::__construct(string `$name`, array `$interfaces`)
public function Componere\Definition::__construct(string `$name`, string `$parent`, array `$interfaces`)

##### Патчинг:

Componere\Patch используется для изменения класса конкретного экземпляра объекта во время выполнения; После применения исправление будет применяться до тех пор, пока существует Componere\Patch и его можно явно отменить.

public function Componere\Patch::__construct(object `$instance`)
public function Componere\Patch::__construct(object `$instance`, array `$interfaces`)

##### Приведение:

Componere\ функции приведения могут приводить среди определённых пользователем совместимых типов; В случае совместимости означает, что Type является подчинённым или супер типом `object`.

function Componere\cast(string `$type`, object `$object`): object
function Componere\cast_by_ref(string `$type`, object `$object`): object

- Установка и настройка
  - Требования
  - Установка
- Componere\Abstract\Definition — Класс Componere\Abstract\Definition
  - Componere\Abstract\Definition::addInterface — Добавляет интерфейс
  - Componere\Abstract\Definition::addMethod — Добавляет метод
  - Componere\Abstract\Definition::addTrait — Добавляет трейт
  - Componere\Abstract\Definition::getReflector — Reflection
- Componere\Definition — Класс Componere\Definition
  - Componere\Definition::__construct — Определяет конструктор
  - Componere\Definition::addConstant — Добавляет константу
  - Componere\Definition::addProperty — Добавляет свойство
  - Componere\Definition::register — Регистрация
  - Componere\Definition::isRegistered — Определение состояния
  - Componere\Definition::getClosure — Получает замыкание
  - Componere\Definition::getClosures — Получает замыкание
- Componere\Patch — Класс Componere\Patch
  - Componere\Patch::__construct — Создёт объект класса Patch
  - Componere\Patch::apply — Приложение
  - Componere\Patch::revert — Отмена
  - Componere\Patch::isApplied — Определение состояния
  - Componere\Patch::derive — Получение патча
  - Componere\Patch::getClosure — Получает замыкание
  - Componere\Patch::getClosures — Получает замыкания
- Componere\Method — Класс Componere\Method
  - Componere\Method::__construct — Конструктор класса Method
  - Componere\Method::setPrivate — Изменение доступности
  - Componere\Method::setProtected — Изменение доступности
  - Componere\Method::setStatic — Изменение доступности
  - Componere\Method::getReflector — Reflection
- Componere\Value — Класс Componere\Value
  - Componere\Value::__construct — Конструктор класса Value
  - Componere\Value::setPrivate — Изменение доступности
  - Componere\Value::setProtected — Изменение доступности
  - Componere\Value::setStatic — Изменение доступности
  - Componere\Value::isPrivate — Определение доступности
  - Componere\Value::isProtected — Определение доступности
  - Componere\Value::isStatic — Определение доступности
  - Componere\Value::hasDefault — Взаимодействие с классом Value
- Функции Componere
  - Componere\cast — Приведение к типу
  - Componere\cast_by_ref — Приведение к типу

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