Zend Framework Per-Module byggt stillingar
Ég hef búið til fylgja þessum pósti sem þurfa minna stillingar, sjá Module Byggt Layout - Zend Framework .
Þegar nota Zend Framework með einingar, augljóst þess að ef þú ert að keyra ýmsar (undir) svæði af sama forritinu sem þú ert ekki endilega sömu forskriftir skipulag fyrir hvern hluta. Ég ákvað að fara með eftirfarandi blogg uppbygging:
/ Application / Stýringar ... / Módel / Modules / Default / Stýringar / Skipulag / Forskriftir / Skoðanir / Forskriftir / AnotherModule ... / Forskriftir
Vandamálið var að setja upp skipulag forskriftir á hverja einingu fyrir sig. Svarið kom í gegnum með aðgerðaáætlun Helper. Setja upp skipulag á hverja einingu grundvelli felur í sér þrjú skref:
- Application.ini (eða svipað stillingar skipulag):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layout / forskriftir" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layout / forskriftir" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / félagi / layout / forskriftir" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / tengja / layout / forskriftir"
- Búa Action Helper þitt:
<? PHP / ** * Setur skipulag slóð á hverja einingu grundvelli * * @ Höfundur Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Síðan 2010/01/01 * / bekknum Pro_Controller_Action_Helper_SetLayoutPath nær Zend_Controller_Action_Helper_Abstract { / ** * Leikmynd skipulag slóð byggist á einingu * / opinbera virka preDispatch () { $ Mát = $ this-> getRequest () -> getModuleName (); if ($ ræsi = $ this-> getActionController () -> GetInvokeArg ('ræsi')) { $ Config = $ ræsi-> getOptions (); if (isset ($ config ['layoutPath'] ['skipulag'] [$ mát] ['auðlinda'])) { $ LayoutPath = $ Config [$ mát] ['layoutPath'] ['skipulag'] ['auðlinda']; $ This-> getActionController () -> GetHelper ('skipulag') -> SetLayoutPath ($ layoutPath); } } } }
- Og loks boostrap aðgerð hjálpar:
... / ** * Setur upp skipulag forskriftir á hverja einingu grundvelli * / vernda virka _initLayoutHelper () { $ This-> ræsi ('frontController'); $ Skipulag = Zend_Controller_Action_HelperBroker:: addHelper ( ný Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































Hæ fyrst takk fyrir þinn gagnlegar leiðbeiningar en segðu mér hvar ég bý til aðgerða hjálpar við norn skrá nafn?
behrang
Hæ Behrang, búa til aðgerða hjálpar með hvort nafnið sem þú vilt, ég hef eigin 'bókasafnsins minn með Nafnrými' Pro '. Þú gætir alveg eins auðvelt að kalla SetLayoutPath 'bekknum og setti hana þar sem þú vilt, að því tilskildu að hægt er að finna það og þú framlengja þarf bekkjum
Hæ, Iam rugla með að setja upp einingu tilteknar stillingar gagnagrunninum ... er einhver með hugmynd?
Ég held að þetta gæti auðveldlega verið náð usign ofan mynstur. Í fyrsta lagi, búa til valkostir í skránni ini þinn á skrám:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Etc ...
Þá einfaldlega búa til gagnasafn tengsl þín eins og þú sýnist (Zend_Db:: verksmiðju () eða svipað) og stash það burt í the skrásetning eða setja það á að vera sjálfgefið millistykki ef þú notar Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).