Skip to main content

O BeanFactory

O BeanFactory permite carregar dinamicamente instâncias de registros ou criar novos registros. Por exemplo, para criar um novo bean, você pode usar:

Exemplo 3.1: Criando um novo Bean usando o BeanFactory
$bean = BeanFactory::newBean('<TheModule>');
//For example a new account bean:
$accountBean = BeanFactory::newBean('Accounts');

A recuperação de um bean existente pode ser obtida de maneira semelhante:

Exemplo 3.2: Recuperando um bean com o BeanFactory
$bean = BeanFactory::getBean('<TheModule>', $beanId);
//For example to retrieve an account id
$bean = BeanFactory::getBean('Accounts', $beanId);

getBean retornará um objeto de bean não preenchido se $beanId não for fornecido ou se não houver esse registro. A recuperação de um bean não preenchido pode ser útil se você desejar usar os métodos estáticos do bean (por exemplo, consulte a seção Procurando por Beans). Para recuperar deliberadamente um bean não preenchido, você pode omitir o segundo argumento do getBean por exemplo.

Exemplo 3.3: Recuperando um Bean não populado
$bean = BeanFactory::getBean('<TheModule>');

Nota: BeanFactory::getBean armazena em cache dez resultados. Isso pode causar um comportamento estranho se você ligar getBean novamente e obtenha uma cópia em cache. Quaisquer chamadas que retornam uma cópia em cache retornarão a mesma instância. Isso significa que as alterações em um dos beans serão refletidas em todos os resultados.

O uso do BeanFactory garante que o bean esteja configurado corretamente e que os arquivos necessários sejam incluídos etc.