Zend Framework mooduli kohta Layout Seaded - Follow Up

Autor Steven Lloyd Watkin , teisipäev 16 veebruar, 2010 20:48

Nagu järelmeetmena minu eelmine postitus per moodul põhineb paigutus seadete jaoks Zend Framework , olen päevakajastamine koodi nõuda vähem konfiguratsiooni seejärel enne (mitte, et ta nõudis seda enam, et paar rida oma rakenduse konfiguratsiooni!).

Jällegi me kasutame Zend Controller Action Helper tuginedes seda bootstrap järgmiselt:

     / ** * Loob paigutus skriptide kohta igale moodulile eraldi * / kaitstud funktsiooni _initLayoutHelper () {$ this-> bootstrap ("frontController '); $ paigutus = Zend_Controller_Action_HelperBroker: addHelper (uus Pro_Controller_Action_Helper_SetLayoutPath (APPLICATION_PATH));} 

Peaaegu täpselt sama kui enne arvatud see aeg võtame pidevalt APPLICATION_PATH sisse ehitaja nagu meie baasi teed.

Järgmine töötleja tegevuse abimees ise näeb nüüd välja järgmine:

 / ** * Komplektid paigutus liini igale moodulile eraldi * * @ author Lloyd Watkin * @ alates 16/02/2010 * @ paketi Pro * @ subpackage Controller_Action_Helper * / / ** * Komplektid paigutus liini per- Mooduli alus * @ author Lloyd Watkin * @ alates 16/02/2010 * @ paketi Pro * @ subpackage Controller_Action_Helper * / class Pro_Controller_Action_Helper_SetLayoutPath laieneb Zend_Controller_Action_Helper_Abstract {/ ** * Base tee * @ var string * / kaitstud $ _path; / * * Rajada * @ param string $ path * / avaliku funktsiooni __construct ($ path) {$ this-> setBasePath ($ path);} / ** * Määra baaskataloog * @ param string $ path * / avaliku funktsiooni setBasePath ($ path) {if (! is_string ($ path) | | tühjad ($ path)) {viska uus Exception ("Välistatud stringi baaskataloog ');} $ this-> _path = $ path;} / ** * Hangi baaskataloog * @ tagasi string * / kaitstud funktsiooni _getBasePath () {if (is_null ($ this-> _path)) {if (! määratletud ("APPLICATION_PATH")) {viska uus Exception ("Base tee ei saa määratud ');} $ this-> _path = APPLICATION_PATH;} tagasi $ this-> _path;} / ** * Komplektid paigutus tee tugineb moodulile * / avaliku funktsiooni preDispatch () {$ module = preg_replace (' / [^ AZ ] / i ','', $ this-> getRequest () -> getModuleName ()); if ($ bootstrap = $ this-> getActionController () -> getInvokeArg ("bootstrap")) {$ vaadata = $ bootstrap- > getResource ("vaadata '); $ layoutPath = $ this-> _getBasePath ().  "/ Modules / {$ moodul} / paigutusega / scripts /" / * Kui paigutus kataloog on olemas, siis kohaldatakse seda, muul juhul lihtsalt langus * tagasi default * / if (is_dir ($ layoutPath)) {$ this-> getActionController ( ) -> getHelper ("skeem") -> setLayoutPath ($ layoutPath), $ view-> headLink () -> appendStylesheet ("/ stiilid / {$ moodul} / style.css");}}}} 

Märkus kulgeb meie baaskataloog (vrd APPLICATION_PATH) kui ehitaja on meil ka Getter ja setter baaskogumi tee. Erinevalt eelmisest versioonist koodi kui paigutusega tee ei eksisteeri siis kood taandub Vaikepaigutuse tee. Kui baaskataloog ei ole määratud siis püüab ta baasi määramiseks tee pidev APPLICATION_PATH, muidu Erandiks on visatud. Olen ka cheekily visati mooduli baasil style sheet hea meede

Moodul põhineb paigutus määratakse kas paigutuse script tee olemas (ilmselt see meetod võib muuta kergesti). See lisab veidi õhuliini alates application.ini setup (aga kui paigutus tee olemas PHP vahemällu tulemus tulemuslikkuse *), kuid vastutasuks saate võita lisatud mugavuse kergemini lohistamine uusi mooduleid.

Ongi kõik, ei ole palju erinev, aga sa ei pea Uue konfiguratsiooni lisamiseks kanne iga kord, kui soovite lisada uue mooduli:)

* Et selge see vahemälu (vajadusel) kasutada clearstatcache funktsiooni.

2 Responses to "Zend Framework mooduli kohta Layout Seaded - Follow Up"

  1. Behrang ütleb:

    Tere, palun öelge mulle, kus luua klassi Pro_Controller_Action_Helper_SetLayoutPath mille faili nimi
    Ma olen algaja Zend.
    tänu

  2. Tere Behrang, luua meetmeid helper koos kumb nimi sulle meeldib, mul on oma "raamatukogu" koos namespace "Pro". Sa võiksid sama hästi kõne klassi SetLayoutPath "ja pane see, kus kunagi sulle meeldib, kui kood ei leia seda ja te laiendada nõutav klasside

Jäta vastus













Panorama Theme poolt Themocracy

8 külastajaid online praegu
4 külalist, 4 eest, 0 liiget
Max Külastusi täna: 15 kell 02:40 UTC
Selle kuu: 26 kell 2011/07/05 12:35 UTC
Sel aastal: 130 at 28-03-2011 22:40 UTC
Kogu aeg: 130 at 28-03-2011 10:40 UTC