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:
$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:
$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.
$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.