Zend Framework: Render Kung Umiiral
Buod
Ito ay isang mabilis post na talakayin ang mga halip simpleng helper view ko ginawa para sa rendering ng isang Zend Framework style file tingnan lamang kung ito ay umiiral na. Karaniwan ang humihingi ng code upang mabigyan ng isang file na kung saan ay hindi umiiral ay ihagis isang exception. Kaya't ko ginawa ang isang wrapper para sa Zend_View:: render () method na tinutukoy kung ang file ay umiiral at kung gayon render, kung hindi man lamang ay nagbabalik ng isang walang laman na string.

Joost J. Bakker IJmuiden - http://www.flickr.com/photos/joost-ijmuiden/
Pagganyak
Ang pangganyak para sa mga ito ay na mayroon ako isa controller / view / etc na nagpapakita ng bahagyang iba't-ibang output depende sa isang parameter. Ang ilan sa mga outputs magkaroon ng isang kaugnay na impormasyon na makakatulong sa kahon na tinukoy, ang ilan ay hindi. Hindi ko nais na magkaroon ng walang laman ang mga file na nakabitin sa paligid ng aking code lamang ng mas maraming bilang Hindi ko nais na magkaroon subukan {} mahuli {} bloke sa aking tingnan ang file. Samakatuwid, ako mabilis na ginawa ang isang 'render kung umiiral ang' view helper para gamitin sa aking code.
mapagtanto ko na dito ay maaaring lamang ako ay may balot ang render paraan sa loob ng isang subukan {} mahuli {} loob ng view helper mismo. Sa kasong ito subalit anumang eksepsiyon hagis mula sa nai-render view ay hindi bubble back up sa mga kaso ng isang bagay na pagpunta mali.
Paano Ito Works
Ang view helper ay nilikha sa pamamagitan ng pagpapalawak Zend_View_Helper_Abstract bilang normal, ito injected na may mga view sa ibabaw gamitin. Ang view helper ay dumaan sa view ng file na nais mong render:
$ Na ito-> renderIfExists ('info-box.phtml'); Loob ng bansa ang object tiklop ang script landas mula sa view ng object at galong sa kanila sinusubukan upang mahanap ang file:
/ **
* Suriin upang makita kung ang isang view script umiiral
*
* @ Bumalik boolean
* /
protektado function _fileExists ()
{
$ Landas = $ ito-> view-> getScriptPaths ();
foreach ($ landas bilang $ path) {
kung (file_exists ($ path. $ ito-> _file)) {
bumalik true;
}
}
bumalik false;
} Kung ang isang pagtutugma ng file ay natagpuan ito ay gumagamit ng pangkaraniwang Zend_View:: render () method, kung hindi, ito ay bumalik sa isang walang string.
Buod
Ito ay isang napaka simpleng helper view upang mabigyan ng isang view ng file kung umiiral na ito at kailangan lang bumalik sa isang walang string kung hindi. Hindi ito gumamit ng isang subukan {} mahuli {} block na kung saan ay maiwasan ang anumang mas malalim exceptions hagis mula bulubok up at ang paggawa ng kanilang mga sarili na kilala. Sa halip ito galong sa pamamagitan ng mga landas script na tinukoy sa loob ng mga object view at mga pagtatangka upang tiktikan ang file bago sinusubukan upang mabigyan ng ito.
Ang buong file ay maaaring matagpuan sa aking github repo .

















































