Naked Zend_Layout agus Zend_View

De réir Watkin Lloyd Steven , Dé Máirt Lún 10, 2010 23:47

San Airteagal seo a Táim ag baint úsáide as Zend_Layout agus Zend_View chomh maith le rialtóir tosaigh simplí chun a thaispeáint conas is féidir tús a scaradh loighic gnó agus cur i láthair taobh istigh de d'iarratas. Tá gach cód ar fáil ar github:
Naked Zend_Layout agus Zend_View ar GitHub .

MVC

A coitianta patrún dearadh nua-aimseartha é iarratais gréasáin le haghaidh an patrún MVC. An Creat Zend modh 'iomlán Stack' Is é i gceann MVC chur chun feidhme i PHP agus tá sé comhdhéanta de thrí chuid:

  • Samhail (M)
  • View (V)
  • Ceannasaí (C)

Is é an patrún deartha sa chaoi is go ghnó agus cur i láthair loighic scartha go hiomlán óna chéile (le loighic gnó sa tsamhail, agus cur i láthair i bhfianaise) agus an rialtóir ina suí di i lár atá ag déanamh an "cheolfhoireann".

Cur i láthair agus Loighce

Sa Chreat Zend tuairim go bhfuil an láimhseáil ag dhá phríomhchuid: Zend_View agus Zend_Layout. Tugann Zend_Layout mar an t-ainm bhreathnaíonn i ndiaidh an ghné leagan amach an tsuímh (i gcoitinne Ceanntásca, Buntásca, sidebars, etc.) Díríonn Zend_View ar chur i láthair na sonraí go bhfuil do múnla a bheith ag obair a thabhairt ar aird nó a dhíorthú.

Mar forbróirí, agus lena n-iarratais, claonadh a bhíonn muid ag éabhlú chun gluaiseacht trí chéimeanna éagsúla, go ginearálta gach feabhas ar an maintainability roimhe sin, a fheabhsú agus Extensibility. Ceann de na príomh-shaincheisteanna atá i láthair agus le loighic a fháil intermingled go fóill agus ní simplí chun tús a scaradh an dá cheann.

Cad atá cearr leis meascadh an dá?

Ostrich Níl roinnt cúiseanna cén fáth a mheascadh codanna éagsúla den iarratas, mar shampla dearthóir ag obair ar do shuíomh d'fhéadfadh nach mian leis (nó an t-eolas) a scanadh timpeall i chód ag iarraidh a bheith ag obair amach nuair a dhéanamh ar athruithe a chur i láthair. Ar an mbealach céanna forbróir (má tá tú mhaith liom a bhfuil na scileanna deartha de ostrich) Féadfaidh briseadh amach i allais nuair a luaigh tú fuar dearadh nó Chomhéadain oibre.

Ina theannta sin más déanaí cad ba mhaith leat a chur i láthair do shuímh ar na meáin éagsúla, mar shampla dteileafón soghluaiste, ríomhairí pearsanta táibléid, nó na sonraí a nochtadh trí sheirbhísí gréasáin (XML / JSON / srl)? Ag cur i láthair loighic mheasctha agus tú i do sheasamh is beag dóchas gan roinnt hacks an-ghránna a tharraingt ar an cur i láthair ar ais as do chód, sula injecting rud éigin nua. Má tá sonraí agus cur i láthair a dhéanamh ar na hathruithe seo a scaradh go bhfuil beagnach fánach, a chruthú script dearcadh nua ar an fhormáid nua agus iarratais dhíreacha mar is cuí.

Scaradh an dá

In iarratas ag teacht chun cinn eacnamaíoch a ní i gcónaí chun tús a chur i bhfeidhm iomlán MVC réiteach agus riachtanais an t-iarratas a aistriú go mall - amanna rith cód d'aois go comhthreomhar leis an nua. Tá sé b'fhéidir go bhfuil mais an loighic (mar shampla, thus nasc bunachar sonraí, fíordheimhniú, láimhseáil fianán, srl) nach bhfuil réidh le haghaidh mhúnlú ar do thus creata a roghnaíodh, dá bhrí sin, is féidir cód d'aois agus ar a dtugtar-le-bheith-obair ar aghaidh le bheith úsáid go dtí cibé tráth is féidir é a rewritten / refactored.

gcreat an úsáid: Zend_Layout agus Zend_View mar Tabhair faoi deara é seo laistigh de Zend breá an inghlactha Réime agus na tírdhreacha creat Tá dearadh comhpháirteanna aonair den sórt sin is féidir iad a úsáid gan an chuid eile. Is buntáiste mór i n-iarratas ag teacht chun cinn agus ar dócha gur ceann de na cúiseanna móra as a glacadh i n-iarratas fiontair ard.

Tosaigh Rialaitheoir

Thíos chruthú mé rialtóir tosaigh - gcomhad amháin atá ceaptha le piocadh suas le haon iarratas nach bhfuil a mhacasamhail comhad ar an córas comhaid-. Is minic a bhaint amach ag baint úsáide as comhad htaccess. Cosúil leis an cheann a úsáidtear sa Chreat Zend réamhshocraithe a shuiteáil. Laistigh de na rialtóir tosaigh Beidh mé ar bun againn leagan amach agus a fheiceáil agus a léiriú i gcás na codanna éagsúla den duillín iarratas isteach ann.

 shainmhíniú ('APP_PATH', dirname (__FILE__)'/..'); / / ob_start aschur Tosaigh buffering (); / / Cruthaigh Zend_Layout Zend_View shampla:.: startMvc (); leagan $ = Zend_Layout:: getMvcInstance (); $ setLayoutPath Leagan amach an-> (APP_PATH '/ leagan amach / scripteanna'.) -> setViewSuffix ('phtml') -> setLayout ("innéacs ');. $ fhonn = getView $ leagan-> () -> setScriptPath (APP_PATH' / dearcadh / scripteanna ') -> addHelperPath (APP_PATH.' / library / Zend / View / cúntóir ',' Zend_View_Helper '); / / Set Base URL - * OK beagnach * nocht, ach ní gá duit é seo!  Zend_Controller_Front:: getInstance () -> setBaseUrl ($ ['HTTP_HOST'] _SERVER); iarracht {/ ** * feidhmigh roinnt iarratas routing ...  * - Níorbh fhéidir a bheith ag baint úsáide as seo mar rialaitheoir tosaigh agus a stiúradh go léir * iarratas tríd an comhad a cheann (ar choinníoll comhad a nach bhfuil ann sa chóras comhaid * - Tabhair faoi deara an modh atá thíos ach i ndáiríre chun a léiriú, go mbeadh sé * Uafásach le suíomh mór * / lasc ($ ['leathanach'] _GET) {gcás 'innéacs': cás 'seachas': $ pageName = $ ['leathanach'] _GET; bhriseadh; default: $ pageName = false; sos;} / / Sampla de Ní bhfuarthas an leathanach á ... má (bréagach === $ pageName) {$ responseHeader = 'HTTP/1.1 Page 404 Gan Aimsiú'; Eisceacht nua le caith ('Page Ní Aimsiú');} / ** * sonraí Cuir le do d'fhonn cuspóir anseo * Is féidir leat do chur chun feidhme rialaitheoir féin nó roinnt comhaid Áirítear * ina bhfuil loighic gnó scartha go páirteach ó * loighic dearcadh / displayText $ amharc-> = 'Dia duit ó Lloyd'; buttonText $ amharc-> = 'I \' m Ní gníomhach ';! ábhar $ Leagan amach an-> = $ sholáthar amharc-> ("{$ pageName} phtml."); macalla a sholáthar $ Leagan amach an-> ();} ghabháil (Eisceacht $ e) {/ / Glan amach cheana féin maolánaithe ábhar - nach bhfuil muid ag iarraidh a chur ar taispeáint go ob_clean (); más rud é (isset ($ responseHeader)!) {$ responseHeader = 'HTTP/1.1 500 Internal Server Error';} header ($ responseHeader); $ cé is moite d'fhonn->! = $ e; ábhar $ Leagan amach an-> = $ sholáthar amharc-> ('error.phtml'); macalla a sholáthar $ Leagan amach an-> ();} 

Gcéad dul síos dúinn tús a buffering aschur, trí é seo a dhéanamh is féidir linn a leagtar ár ceanntásca ag pointe ar bith an t-iarratas agus tá a fhios gur féidir iad a sheoladh. Ba chóir d'eisceacht a chaitheamh ag céim ar bith den chód a fhorghníomhú againn glan Maolán seo agus a scríobh nó teachtaireacht earráide ábhar agus leagan amach. Cinntíonn sé seo nach féidir linn a sheachadadh a rinneadh mar chuid earráidí ábhair ina bhfuil an úsáideoir deiridh.

Next is nua MVC shampla de Zend_Layout ghintear agus inis dúinn é go bhfuil scripteanna leagan amach na phtml leathnú, le fáil i eolaire lasmuigh den chosán poiblí, agus go bhfuil ár leagan amach réamhshocraithe a dtugtar innéacs (. Phtml). Ón leagan amach againn a bhaint as an réad view (a leagaimid ár gcuid sonraí a chur i láthair) agus thus den chineál céanna i bhfeidhm.

Next muid thus an réad dearcadh le tagairt do na default Cúntóirí Zend_View. Tá Cúntóirí Féach ar thacar de feidhmiúlacht áise breise. Mar shampla, scríobh amach snámh i bhformáid airgeadaíochta, nó a chruthú breac tábla riabhach (is féidir iad a léamh faoi anseo ). De réir a leathnú Zend_View_Helper_Abstract agus cur le do leabharlann féin ag an bpointe seo a féidir a úsáid do thuairim féin Cúntóirí iarratas.

Tá an chuid eile de chód iarratais anois fillte ar iarracht a dhéanamh teacht bloc {{}}. Ba cheart aon rud le caith eisceacht uncaught féidir linn é a ghabháil agus teachtaireacht earráide deas a thaispeáint don úsáideoir deiridh.

Is é an chéad tasc laistigh den ghabháil iarracht {} {} a mbealach ár n-iarraidh sin, cad a dhéanann an t-úsáideoir mhaith liom a fheiceáil? Anseo tá mé i bhfeidhm cód le roinnt taispeántas an-simplí nuair a sheiceáil mé luach an 'leathanach' a fháil athraitheach. Do routing féidir a bheith i bhfad níos casta. Tá an routing a úsáidtear chun glaoch ar cad is gá riamh cód a bheidh le déanamh chun a fháil / a láimhseáil sonraí arna soláthar ag an úsáideoir agus go dtí an córas a view (agus script leagan amach b'fhéidir) a úsáid insint.

I ndeireadh na dála más rud é nach bhfuil ar ár ródaire comhoiriúnach le haon leathanach Leagann sé cód 404 freagra agus taispeántais ar leathanach deas Ní bhfuarthas an teachtaireacht don úsáideoir deiridh. Anseo, caith muid féin agus ár n-eisceacht ghabháil (agus an-cineálach eisceacht ar sin) ach is dócha gur mhaith leat a bheith ag caitheamh do chuid eisceacht féin ó laistigh den chód ródaire.

Chomh luath agus atá déanta againn go rathúil ár n-iarraidh sin is féidir linn tús a chur le rud éigin a dhéanamh leis an gcód. D'fhéadfadh sé a bheith go bhfuil tú do rialaitheoirí féin / samhlacha i bhfeidhm nó tá tú roinnt chód sin a bhí scartha ábhairín cheana féin. Anseo atá leagtha mé cúpla athróg simplí ar an réad fheiscint.

Chomh luath agus is é seo a sholáthar i gcrích againn ach an tuairimí lenár sonraí. Má throws an cód eisceacht uncaught ar chúis ar bith é seo gafa in aice le bun an script. Anseo soiléir againn cheana féin maolánaithe aschur, a shocrú le 500 header fhreagra air sin, agus inis ár n-iarratas i gcóir chun féachaint ar an script 'earráid' (atá i bhfad níos ginearálta a leagan síos ar an leagan amach stripped gnáth / dearcadh agus logaí an earráid le seiceáil a dhéanamh ina dhiaidh sin).

Toisc go bhfuil an dearcadh a rinneadh an chéad agus an ghann i leagan amach is féidir a athrú ar an leagan amach ó laistigh den tuairim, agus go deimhin extras riachtanach a leagtar, mar shampla,

  • Page teideal
  • Meta tags
  • Scripteanna (URLanna nó cód) isteach leis an alt <head>
  • Cuir stíleanna breise, etc

Ina theannta sin is féidir fiú a leagan amach ar fad a athrú ó laistigh den tuairim trí úsáid a bhaint as ...

  leagan amach () <$ seo-php?> -> setLayout ('alternativeLayout')>? 

... Mar is gá.

Ar deireadh ...

Tá súil agam an bhfuil a thabhairt isteach úsáideach Zend_Layout agus Zend_View agus beidh sé ar chumas leat chun tús a chur chun feidhme do MVC bhunúsach féin agus an maintainibility / Extensibility ar do chód fheabhsú. Chur le do thoil le breathnú ar an cód foinse do samplaí úsáide (féach an comhad a EOLAIS le haghaidh treoracha).

Glacann an cód sin tá tú ag obair cheana féin autoloading (nó is féidir leat a bheith san áireamh na ranganna ag teastáil). Ina theannta sin, ní ba mhaith liom a mholadh go bhfuil tú chun na routing nó sonraí a leagan síos mar a luadh thuas, tá sé seo go mór simplithe chun a léiriú. Chun féachaint ar an gcód iomlán a ghlacadh le breathnú ar an cód foinse nasctha ag barr an t-airteagal seo.

Zend Creat Leagan: 1.10.6

Freagra amháin do "Zend_Layout Naked agus Zend_View"

  1. Andy a deir:

    Well scríofa agus is faisnéisí, go raibh maith agat!

Leave a Reply













Lánléargas Téama Themocracy

4 cuairteoirí ar líne anois
4 aíonna, 0 bots, 0 baill
Tá 13 ag 12:19 UTC: Max cuairteoirí an lae inniu
An mhí seo: 26 ag 2011/07/05 12:35 UTC
I mbliana: 130 ag 28-03-2011 22:40 UTC
Gach uair: 130 ag 28-03-2011 22:40 UTC