Naučil som sa veľa o tom, ako fungujú rámce MVC, keď som sa rozhliadol a študoval existujúce. Zdá sa, že každý rámec, ktorý vidím, má rozloženie, v ktorom má každá metóda v každom ovládači svoj vlastný súbor šablóny. Takže bude existovať vzor vstupu, vzor odchodu, register atď. Atď.
Moja otázka je, ako a prečo by ste mali vytvoriť šablónu pre celú stránku v jednom súbore. Povedzme, že ste chceli zobraziť prihlasovací formulár na viac ako jednej stránke, nepotrebujete vytvoriť prihlasovací formulár pre každú šablónu, ktorú chcete zobraziť? Nie je to proti pravidlám neopakovať sa (SUCHÉ)?
Spôsob, akým som to doteraz robil, je taký, že vytváram bloky písmen šablóny a potom ich spájam, aby som vytvoril každú stránku. Takže namiesto toho, aby ste urobili niečo takéto,
$title = "(!LANG:Blah Blah Blah"; $user = "Jon Miller"; include "index.phtml"; !}
Urobil som to
$title = "(!LANG:Blah Blah Blah"; include "header.phtml"; $user = "Jon Miller"; include "user.phtml"; include "login_form.phtml"; include "footer.phtml"; header.phtml !}
Ako vždy, len by som rád vedel, ako to urobiť správne, ako aj ako a prečo... Zdá sa, že je to proti pravidlu DRY.
4 odpovede
Jedno slovo: organizácia. Oddelenie každej časti stránky umožní každú z nich prezerať/upravovať samostatne. Tento jednoduchý koncept je veľmi užitočný. Napríklad každý v tíme, ktorý chce zvládnuť proces prihlásenia, môže ľahko zistiť, že je potrebné upraviť súbor login_form.phtml a môže si byť istý, že úprava súboru login_form.phtml bude menej pravdepodobná, že by neúmyselne zasahovala do iných funkcií.
Ako najlepšie, tu je návod, ako to robím (nie presne, ale vyzerá to tak).
$Title = "(!LANG:Blah Blah Blah"; $User = "Jon Miller"; $ThemeName = "MyGreenPage"; $Contents = array("User", "Login_Form"); function Include($FileName) { if (file_exists($FileName)) include $FileName; } !}
MyGreenPage.phtml:
User.pcss:
/* Niektoré štýly potrebné používateľom */
user.pjs:
/* Používateľ potrebuje nejaký skript */
User.phtml:
Login_Form.pcss:
/* Niektoré štýly potrebné pre Login_Form */
Login_Form.pjs:
/* Prihlasovací_formulár potrebuje nejaký skript */
login_form.phtml:
Dovoľte mi zopakovať, že to nie je to, čo robím (že používam OOP), takže to nemusí fungovať presne tak, ako to je, a možno ho budete musieť upraviť.
Mali by ste si pozrieť koncepty rozložení a zobraziť pomocníkov. Aj keď som spojený s verziou týchto konceptov Zend Framework, mali by ich mať aj iné rámce MVC (a koncept MVC).
Základnou myšlienkou je, že vaša „zobrazovacia“ stránka – napríklad prihlasovací formulár – je zahrnutá do rozloženia vašej lokality – spoločná šablóna, ktorá sa používa na celom vašom webe. Keď požiadate o iný ovládač s iným zobrazením – napríklad s profilom používateľa – toto zobrazenie je tiež zahrnuté v rovnakom rozložení.
Ak chcete na všetkých stránkach povoliť niečo ako prihlasovací formulár, môžete použiť pomocníka zobrazenia. Tento pomocník zobrazenia môže zobraziť aktuálneho používateľa alebo zobraziť prihlasovací formulár v závislosti od stavu prihlásenia. Pomocníkov zobrazenia možno zahrnúť do rozloženia alebo ich povoliť špecifický ovládač (pokiaľ rámec MVC umožňuje určitý druh segmentov vykresľovania).
Dvojkroková metóda „zahrnutia“ funguje lepšie ako lineárne zahrnutie častí (vrátane hlavičky, potom obsahu a potom päty – čo práve robíte), pretože vaše šablóny nepotrebujú oddeľovať značky HTML. . Sprievodca Zend má pekný vizuálny príklad šablón zobrazenia v rozložení.
Najbežnejším spôsobom vytvárania šablón HTML pomocou PHP je použitie jednej z týchto populárnych šablón:
Do kódu HTML môžete tiež vložiť zástupné symboly, ktoré vyzerajú ako<% variablename %>. Stačí nahrať svoj HTML kód, zadať regulárny výraz, nájsť všetky zástupné symboly a nahradiť ich príslušnými premennými.
Prípadne môžete načítať svoj HTML a analyzovať ho ako dokument DOM a potom zmeňte svoj DOM. Vytvoril som knižnicu
V tomto článku vám nepoviem, prečo sú webové stránky potrebné a aké peniaze s nimi môžete zarobiť. Tu som len chcel hovoriť o rozdieloch medzi stránkami vytvorenými pomocou rôznych nástrojov.
Predstavte si typickú stránku HTML
Na jednej strane si zoberieme bežnú HTML stránku, ktorá je v podstate statická. Jednoducho povedané, existuje množstvo stránok s informáciami, ktoré sú prepojené odkazmi. Zvyčajne na takejto lokalite nie je príliš veľa stránok, aj keď existujú výnimky.
A na takýchto stránkach je málo stránok, pretože keď sa takáto stránka začne rozrastať, správa sa stáva veľmi nepohodlnou. Z tohto dôvodu človek buď prestane stránku úplne sledovať, alebo sa pokúsi použiť nejaký redakčný systém (CMS). Existujú aj ľudia, ktorí sa snažia naučiť programovacie jazyky pre WEB, aby sa ich stránka stala automatizovanou a teda pohodlnejšou na správu.
Ako však ukazuje skúsenosť, len málo z nich sa s touto úlohou vyrovná a ich stránky naďalej rastú a rozvíjajú sa.
A čo všetci ostatní?
Niekto sa hrabe na internete, niekto sa snaží kúpiť papierové knihy. Ale bez základných znalostí o štruktúre takýchto programovacích jazykov, bez pochopenia základov vytvárania stránok, takéto pokusy väčšinou nekončia ničím.
Na druhej strane sa pozrime na stránku, ktorá bola vytvorená pomocou množstva obyčajného HTML a jednoduchého programovacieho jazyka pre web – PHP.
Najdôležitejší rozdiel medzi touto stránkou a predchádzajúcou je v tom, že takáto stránka môže byť vytvorená ako konštruktor z blokov. Urobili sme hlavičku stránky – umiestnili ju do samostatného súboru, urobili ľavý blok s navigáciou na stránke – umiestnili do samostatného súboru atď.
Čo nám to dáva?
Dáva slobodu. Tie. teraz môžeme tieto bloky pripojiť k hlavnému rámcu a aj keby sme nakoniec mali na webe 10 000 stránok a zrazu by sme potrebovali zmeniť nejaký navigačný prvok, tak v tom nebude nič ťažké. Otvorte súbor s požadovaným blokom, upravte ho a je to! Na všetkých 10 000 stranách sa táto zmena udiala v okamihu.
Okrem toho všetky užitočné informácie (články, popisy tovarov a služieb, lekcie, poznámky atď.) takejto stránky môžu byť uložené v databáze, čo poskytuje ešte viac výhod:
- Stránka zaberá menej miesta;
- Zjednodušené zálohovanie dát;
— Uľahčuje zmenu akýchkoľvek údajov;
- Je možné počítať akékoľvek informácie (koľkokrát bola stránka zobrazená, stiahnutý súbor, pridané komentáre atď.);
- Na stránke môžete použiť množstvo hotových PHP skriptov;
- atď.
HTML alebo PHP
Ak nakreslíme analógiu medzi HTML a PHP stránkami s autami, tak tak, ako sa moderné autá stali pohodlnejšími, výkonnejšími, funkčnejšími a zároveň začali spotrebovávať menej paliva ako ich náprotivky spred 50 rokov, PHP stránka sa stala ľahšou, funkčnejšou, ľahšie spravovateľnou a mobilnejšou ako jej HTML protivník.
Žiaľ, v rámci jedného článku nie je možné úplne pokryť túto tému, ale myslím si, že aj z bodov, ktoré som tu popísal, môžete usúdiť, ktorú stránku je najlepšie vytvoriť, aby ste išli s dobou a získali slušná návratnosť investícií do tvorby.stránka s úsilím.
Jevgenij Popov- Autor 22,5 hodinového videokurzu „Všetky technické momenty online podnikania vo formáte videa 2 alebo PHP + MySQL pre začiatočníkov“, v ktorom je celý proces vytvárania PHP stránky od začiatku zobrazený priamo na obrazovke vášho počítača s hlasovým vysvetlením.
PHP je vstavaný programovací jazyk na strane servera. Veľká časť jeho syntaxe je prevzatá z jazykov C, Java a Perl. Tiež pridané niekoľko jedinečných funkcií špecifických pre PHP. Hlavným účelom tohto jazyka je vytvárať dynamicky generované PHP HTML stránky.
PHP do HTML
Pri vytváraní zložitých webových stránok budete musieť skombinovať PHP a HTML, aby ste splnili špecifické úlohy. Na prvý pohľad sa to môže zdať komplikované, keďže PHP a HTML sú dve nezávislé disciplíny, ale nie sú. PHP je navrhnuté na interakciu s HTML a jeho kód môže byť zahrnutý do označenia stránky.
PHP kód je súčasťou HTML stránok pomocou špeciálnych značiek. Keď používateľ otvorí stránku, server spracuje kód PHP a potom odošle výsledok spracovania (nie PHP kód) do prehliadača.
HTML a PHP sa dajú veľmi ľahko kombinovať. Akákoľvek časť skriptu PHP mimo značiekje ignorovaný kompilátorom PHP a odovzdaný priamo prehliadaču. Pri pohľade na nižšie uvedený príklad môžete vidieť, že úplný PHP skript môže vyzerať takto:
ahoj dnes.