Introdução

Componere (latim, português: compor) tem como alvo ambientes de produção e fornece uma API para composição de classes, alteração dinâmica de código durante a execução e conversões.

Composição:

Componere\Definition é usado para definir (ou redefinir) uma classe em tempo de execução; A classe pode então ser registrada, e no caso de redefinição ela substitui a classe original enquanto o Componere\Definition existir.

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

Alteração dinâmica:

Componere\Patch é usado para alterar a classe de uma instância específica de um objeto em tempo de execução; Após a aplicação, o patch permanecerá aplicado enquanto o Componere\Patch existir e poderá ser revertido explicitamente.

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

Conversão:

As funções de conversão do Componere\ podem converter entre tipos compatíveis definidos pelo usuário; Onde compatível significa que Type é sub ou super ao tipo de object.

Componere\cast(Type $type, $object): Type
Componere\cast_by_ref(Type $type, $object): Type