Domanda

Comincio con ZF (1.9.7), e voglio usare View Helper da una libreria condivisa tra tutti i miei progetti. Ma non riesco a trovare il modo di inserirlo directory al percorso aiutanti. I miei lavori Herpers multe quando li ho messi in cammino aiutanti di applicazione.

Ecco l'errore, dove trovo il percorso di aiutanti ZF, e il percorso a quelle applicazioni.

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)

Con i migliori saluti
Cédric

È stato utile?

Soluzione

Si può fare molto facilmente con l'a Zend_Application risorsa costruita per la vista. Se stai usando configurazioni ini, aggiungere una riga come questa:

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

La fine della chiave è il prefisso del nome della classe, e il valore del percorso in cui risiedono.

Altri suggerimenti

percorsi di supporto vengono aggiunte tramite Zend_View_Abstract :: addHelperPath () . È possibile chiamare questo metodo direttamente su un'istanza vista esistente.

percorsi di supporto possono anche essere configurati in vari modi durante il bootstrap. Controlla il capitolo del manuale ZF a Zend_Application per vedere come utilizzare le risorse e le classi bootstrap:

C'è un problema quando si utilizza

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

Posso accedere senza vista helper nel layout anche aiutanti locali nel modulo. (Plugin per nome 'LoggedInAs' non è stato trovato nel Registro di sistema), ma ancora lavorando in vista file di modello.

ho messo questo codice "eco Zend_Debug :: dump ($ this)" alla fine del file di layout e c'è una parte della produzione.

        ["_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/"
          }
        }

ma quando si utilizza questi codice nel file di bootstrap non c'è nessun 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');

l'uscita era come di seguito:

            ["_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/"
              }
            }

EDIT: vedi view helper in Zend Framework per un più dettagliate prendere su questo tema utilizzando Loggedinas view helper di Rob Allen.

Non solo si può fare, come specificato da David Caunt, ma anche si può fare in questo modo nel vostro bootstrap. Nota c'è sempre più di un modo per fare qualcosa in Zend Framework

http://devzone.zend.com/article/3412

Se si ha accesso all'oggetto vista, procedere come segue.

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

potrebbe essere necessario per ottenere l'oggetto visualizzazione se in un plugin front controller

controllare anche questa davvero grande set di poli di partenza qui:

http : //zend-framework-community.634137.n4.nabble.com/Getting-view-from-Bootstrap-ZF1-8-tp659447p659460.html

Ho scritto breve semplice tutorial per la registrazione dei aiutanti vista Zend da una directory comune, cui si può accedere in tutta l'applicazione. Si prega di dare un'occhiata.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top