Pergunta

Começo com o ZF (1.9.7) e quero usar os ajudantes de uma biblioteca compartilhada entre todos os meus projetos. Mas não consigo encontrar como adicionar diretório de TI ao caminho dos ajudantes. Meu Herpers trabalha multas quando eu as coloco no caminho dos ajudantes do aplicativo.

Aqui está o erro, onde encontro o caminho para os ajudantes do ZF e o caminho para os aplicativos.

object(ArrayObject)#71 (3) {
  ["exception"]=>
  object(Zend_Loader_PluginLoader_Exception)#70 (6) {
    ["message:protected"]=>
    string(151) "Plugin by name 'Voo' was not found in the registry; used paths:
Zend_View_Helper_: Zend/View/Helper/;C:/ZendStd/www/applis/VOO4_PROJECTX/views\helpers/"
    ["string:private"]=>
    string(0) ""
    ["code:protected"]=>
    int(0)
    ["file:protected"]=>
    string(89) "C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Loader\PluginLoader.php"
    ["line:protected"]=>
    int(401)

Atenciosamente
Cédric

Foi útil?

Solução

Isso pode ser feito com muita facilidade com o recurso incorporado em zend_application para a visualização. Se você estiver usando as configurações ini, adicione uma linha como esta:

resources.view.helperPath.My_View_Helper = "My/View/Helper"

O final da chave é o prefixo do nome da classe e o valor do caminho onde eles residem.

Outras dicas

Caminhos auxiliares são adicionados através Zend_view_abstract :: addHelperPath (). Você pode chamar esse método diretamente em uma instância de visualização existente.

Os caminhos auxiliares também podem ser configurados de várias maneiras durante o bootstrap. Confira o capítulo manual do ZF em Zend_Application Para ver como usar as classes e recursos do Bootstrap:

Há um problema ao usar

resources.view.helperPath.App_View_Helper = APPLICATION_PATH "/../library/App/views/helpers"

Não posso acessar nenhum auxiliar de visualização no layout, mesmo os ajudantes locais no módulo. (O plug -in por nome 'loggedinas' não foi encontrado no registro), mas ainda trabalhando nos arquivos de modelo de visualizações.

Coloquei este código "ECHO ZEND_DEBUG :: dump ($ this)" no final do arquivo de layout e há uma parte da saída.

        ["_prefixToPaths:protected"] => array(3) {
          ["Zend_View_Helper_"] => array(2) {
            [0] => string(17) "Zend/View/Helper/"
            [1] => string(16) "./views\helpers/"
          }
          ["ZendX_JQuery_View_Helper_"] => array(1) {
            [0] => string(25) "ZendX/JQuery/View/Helper/"
          }
          ["Zend_View_Helper_Navigation_"] => array(1) {
            [0] => string(28) "Zend/View/Helper/Navigation/"
          }
        }

Mas ao usar esses código no arquivo bootstrap, não há problema.

    //Initialize and/or retrieve a ViewRenderer object on demand via the helper broker
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->initView();
    //add the global helper directory path
    $viewRenderer->view->addHelperPath(APPLICATION_PATH.'/../library/App/views/helpers', 'App_View_Helper');

A saída foi como abaixo:

            ["_prefixToPaths:protected"] => array(4) {
              ["Zend_View_Helper_"] => array(3) {
                [0] => string(17) "Zend/View/Helper/"
                [1] => string(16) "./views\helpers/"
                [2] => string(86) "D:/zf/application/modules/default/views\helpers/"
              }
              ["App_View_Helper_"] => array(1) {
                [0] => string(85) "D:\zf\application/../library/App/views/helpers/"
              }
              ["ZendX_JQuery_View_Helper_"] => array(1) {
                [0] => string(25) "ZendX/JQuery/View/Helper/"
              }
              ["Zend_View_Helper_Navigation_"] => array(1) {
                [0] => string(28) "Zend/View/Helper/Navigation/"
              }
            }

Editar: Confira Ver Helper in Zend Framework Para uma abordagem mais detalhada sobre esse problema, usando o Helper Loggedinas View de Rob Allen.

Você não só pode fazer o especificado por David Cunt, mas também pode fazer assim no seu bootstrap. Observe que sempre há mais de uma maneira de fazer qualquer coisa na estrutura Zend

Verificação de saída http://devzone.zend.com/article/3412

Se você tiver acesso ao objeto View, faça o seguinte.

<?php    
$view->addHelperPath('My/View/Helper/', 'My_View_Helper'); 
?>

Pode ser necessário obter o objeto View se você em um plugin de controlador frontal

Confira também este ótimo conjunto de postagens começando aqui:

http://zend-framework-community.634137.n4.nabble.com/getting-view-from-bootstrap-zf1-8-tp659447p659460.html

Escrevi um tutorial curto simples para registrar os ajudantes do Zend View de um diretório comum, que pode ser acessado durante todo o aplicativo. Por favor, dê uma olhada.

http://www.mixedwaves.com/2010/03/accessing-and-using-zend-view-helpers-froma-common-directory/

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