Pergunta

Vi exemplos que têm esse bloco de código e outros exemplos que não tiveram as duas linhas comentadas talvez não. Qual é exatamente o objetivo dessas 2 linhas?

$moduleLoader = new Zend_Application_Module_Autoloader(array(
    'namespace' => '',
    'basePath' => APPLICATION_PATH)
);


$autoloader = Zend_Loader_Autoloader::getInstance(); //MAYBE NOT
$autoloader->setFallbackAutoloader(true);      //MAYBE NOT

return $moduleLoader;

Adicionado:

Dadas as respostas, é bom fazer dessa maneira? Existe uma sobrecarga ou qualquer coisa que não seja boa nisso, ou essa é a prática padrão?

Foi útil?

Solução

A segunda linha é uma espécie de solução alternativa para os casos em que o AutoLoader de estrutura padrão não é suficiente e deve ser evitado, porque diminui as coisas (mesmo que às vezes seja muito útil).

Parece que o AutoLoader de fallback não estará disponível no ZF 2.0.

Outras dicas

Isso fará com que o automóvel especificado seja usado para qualquer espaço para nome e classes que não sejam nomes, ignorando efetivamente o parâmetro 'namespace' se não houver automaturas automáticas para esse espaço para nome for definido.

É apropriado usar $autoloader->setFallbackAutoloader(true) Quando você tem classes que não pertencem a um espaço para nome ou precisa usar classes em muitos namespaces diferentes.

A primeira linha é trivial, a segunda linha é mencionada no manual: significa que o Zend AutoLoader tentará carregar (automaticamente) todas as classes, não apenas as classes mencionadas como prefixo, ou automático registrado.

O primeiro é obter a instância do automóvel, é isso. Como o Autoloader é um singleton, ele só pode ter uma instância. Se essa instância ainda não existir, ela será criada.

A segunda linha é fazer com que o AutoLoader atue como uma captura - sempre que algo não é encontrado, o automóvel é acionado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top