# Componere

# Introducción

Componere (latin, English: compose) se dirige a los entornos de producción y proporciona una API para composición de las clases, parches y moldeado.

##### Composición:

Componere\Definition se utiliza para definir (o redefinir) una clase en tiempo de ejecución; La clase puede entonces registrarse, y en caso de redefinición reemplaza a la clase original durante todo el tiempo que la clase Componere\Definition exista.

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`)

##### Parcheado:

Componere\Patch se utiliza para cambiar la clase de una instancia específica de un objeto en tiempo de ejecución; Tras su aplicación, el parche permanecerá aplicado durante todo el tiempo que la clase Componere\Patch exista, y puede ser revertido explícitamente.

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

##### Moldeado:

Componere\ Las funciones de moldeado pueden moldear entre tipos compatibles definidos por el usuario; Donde compatible significa Type es sub o super al tipo de `object`.

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

- Instalación/Configuración
  - Requerimientos
  - Instalación
- Componere\Abstract\Definition — La clase Componere\Abstract\Definition
  - Componere\Abstract\Definition::addInterface — Añadir Interface
  - Componere\Abstract\Definition::addMethod — Añadir método
  - Componere\Abstract\Definition::addTrait — Añadir rasgo
  - Componere\Abstract\Definition::getReflector — Reflection
- Componere\Definition — La clase Componere\Definition
  - Componere\Definition::__construct — Constructor Definition
  - Componere\Definition::addConstant — Añade constante
  - Componere\Definition::addProperty — Añade propiedad
  - Componere\Definition::register — Registro
  - Componere\Definition::isRegistered — Detección del estado
  - Componere\Definition::getClosure — Obtener Cierre
  - Componere\Definition::getClosures — Obtener Cierres
- Componere\Patch — La clase Componere\Patch
  - Componere\Patch::__construct — Constructor Patch
  - Componere\Patch::apply — Aplicación
  - Componere\Patch::revert — Reversión
  - Componere\Patch::isApplied — Detección del estado
  - Componere\Patch::derive — Derivación del parche
  - Componere\Patch::getClosure — Obtener Cierre
  - Componere\Patch::getClosures — Obtener Cierres
- Componere\Method — La clase Componere\Method
  - Componere\Method::__construct — Constructor Method
  - Componere\Method::setPrivate — Modificación de la accesibilidad
  - Componere\Method::setProtected — Modificación de la accesibilidad
  - Componere\Method::setStatic — Modificación de la accesibilidad
  - Componere\Method::getReflector — Reflection
- Componere\Value — La clase Componere\Value
  - Componere\Value::__construct — Constructor Value
  - Componere\Value::setPrivate — Modificación de la accesibilidad
  - Componere\Value::setProtected — Modificación de la accesibilidad
  - Componere\Value::setStatic — Modificación de la accesibilidad
  - Componere\Value::isPrivate — Detección de accesibilidad
  - Componere\Value::isProtected — Detección de accesibilidad
  - Componere\Value::isStatic — Detección de accesibilidad
  - Componere\Value::hasDefault — Interacción de Value
- Funciones Componere
  - Componere\cast — Moldeado
  - Componere\cast_by_ref — Moldeado

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