Jak nejlépe stavět šablony? – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak nejlépe stavět šablony? – PHP – Fórum – Programujte.comJak nejlépe stavět šablony? – PHP – Fórum – Programujte.com

 

Matěj Andrle+1
Grafoman
12. 2. 2016   #1
-
0
-

Dobrý den,
ač PHP jasně vede, přístup ASP.NET mi tu vždy velmi chyběl - tedy možnost oddělit kód a míchat všechny části se všemi. Nepřibyl nějaký vestavěný prvek, či tak - anebo jen neznáte lepší přístup, jak stavět a míchat části PHP s HTML? Část lze řešit vkládáním HTML souborů v rámci větvení atp. Nyní se mi však nejeví jiná možnost, než vypisovat HTML přímo v PHP. Chtěl bych zkrátka vést .php a .html -> přitom v PHP přímo pracovat s HTML... (Nakládat s jednotlivými elementy.)

Nahlásit jako SPAM
IP: 31.30.56.–
peter
~ Anonymní uživatel
3981 příspěvků
12. 2. 2016   #2
-
0
-

Hledas include? Podle mne, stavet sablony jako programy, tj, mit tam cykleni a pod je nesmysl. To by melo vygenerovat php. Jediny smysl dava prepisovat tam promenne pro jazykove mutace.

A michat vsechno se vsim neni spravny postup. Php by sis mel zpracovat zvlast a az vysledek vypsat do sablony. Rozdil poznas v rychlosti spracovani a tez v logice kodu. Delat "echo" prubezne vede k more chybam. Mas tam treba rozhodovani vypsat stranku nebo obrazek. Na obrazek potrebujes zmenit header a hnedka error, protoze jsi neco uz vypsal pres echo, treba hlavicku stranky. A kdybys to osetril, tak mas error pri zobrazeni obrazku, protoze se pred echo obrazku vloudilo echo hlavicky stranky.

Kdyz nemas zapnuty ob_start, tak echo 1000 radkove tabulky radek po radku je asi 5s zalezitost. Fakt to povazujes za prinos?

Jinak je fura sablonovacich systemu, jestli teda neco takoveho potrebujes. Smarty, nette-latte, xslt, ...

Nahlásit jako SPAM
IP: 2001:718:2601:26c:e587:d5...–
Matěj Andrle+1
Grafoman
12. 2. 2016   #3
-
0
-

#2 peter
Právě naopak - nechci míchat PHP a HTML - píši to jasně. Chci naopak míchat HTML soubor s PHP souborem - tedy oba kódy v oddělených souborech. ASP.NET umožňuje velmi snadno udržovat HTML mimo serverový kod - s proměnnými, které když na serveru nedoznají naplnění, tak se jednoduše vytratí. Když takovéto proměnné použiji v PHP (se zmíněným include), tak mi to výslednou stránku rozhází. Hledám tedy cestu míchání usercontrol, masterpage, ...

Nahlásit jako SPAM
IP: 31.30.56.–
ondrej39+1
Věrný člen
12. 2. 2016   #4
-
0
-

#3 Matěj Andrle
To, co chceš, je klasická MVC architektura, nebo minimálně VC (pro tvé potřeby není M úplně potřeba). Tak, jako tak, při použití PHP se nevyhneš alespoň nějakému PHP kódu přímo v HTML šabloně.

Standardní postup je takový, že v kontroleru si naplníš konkrétní proměnné hodnotami, které tam mají být, tyto proměnné pošleš do view a ve view už s nimi neděláš žádné jiné operace kromě jednoduchých foreach cyklů a případné nějaké podmínky.

Celou logiku aplikace v MVC si pak můžeš představit tak, že nejdříve se provede to, co je v kontroleru, a za to se jakoby nalepí šablona obsahující HTML a PHP, proto jsou v rámci daného requestu v šabloně dostupné proměnné, které do šablony předáš. Je to jeden životní cyklus aplikace.

Nahlásit jako SPAM
IP: 78.156.159.–
Inject all the dependencies!
Matěj Andrle+1
Grafoman
12. 2. 2016   #5
-
0
-

#4 ondrej39
MVC i formuláře znám a právě proto se neodvažuji psát v PHP o MVC. Nic takového se v PHP vyloženě učinit nedá. Lze jen logicky uspořádat kód, leč PHP funguje holt jinak. Proto mne jen zajímá, zda se třeba již trochu nepředělala funkčnost PHP - která by něco málo uvolila, neboť MVC se celkem rozjelo. Nepotřebuji však dělit na pohled, správu a model/data. Potřebuji jen střídat různé části HTML dle stavu, v jakém bude probíhat komunikace mezi klientem a PHP. A právě nakonec je to vždy nějaké echo a include. (Stavebními základy MVC je kompilace - což u PHP...)

Nahlásit jako SPAM
IP: 31.30.56.–
ondrej39+1
Věrný člen
12. 2. 2016   #6
-
0
-

#5 Matěj Andrle
Stavebním základem MVC kompilace opravdu není. MVC je druh architektury a s kompilací kódu nemá vůbec nic společného. V PHP je možné psát MVC stejně dobře jako v .NETu.

Nahlásit jako SPAM
IP: 78.156.159.–
Inject all the dependencies!
Kit+15
Guru
12. 2. 2016   #7
-
0
-

#1 Matěj Andrle
Na vytváření HTML z PHP používám čablony napsané v XSLT. Data naskládám do objektu třídy DomDocument a přes XsltProcessor z toho vygeneruji cílové HTML. Je to velmi rychlé, v řádu jednotek ms.

Šablony se skládají z jednotlivých template a mohou se vzájemně volat, i rekurzívně. Jsou řízeny tokem dat z objektu třídy DomDocument.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
3981 příspěvků
15. 2. 2016   #8
-
+1
-
Zajímavé

Jo takhle, takze ti klasicke preg_replace nebo .$prom. nestaci. Tak zkus preg_match_callback na sablonu. tam se muzes zeptat na
isset($data[$matches[0]]) ? $data[$matches[0]] : '';

Nahlásit jako SPAM
IP: 2001:718:2601:26c:88a3:dc...–
Kit+15
Guru
19. 2. 2016   #9
-
0
-

#5 Matěj Andrle
MVC nemá s formuláři mnoho společného. MVC je mnohem obecnější architekturou, která se dá použít nejen u formulářů, ale obecně k jakémukoli vstupu a výstupu aplikace. Realizace MVC v PHP je naprosto bezproblémová, pokud v návrhu neuděláš chybu.$_POST vstupuje do controlleru, $_GET vstupuje do view. Napříkald Rest API v MVC vypadá velice elegantně. Krásně se udržuje a rozšiřuje bez větších zásahů do existujícího kódu.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Matěj Andrle+1
Grafoman
19. 2. 2016   #10
-
0
-

#9 Kit
Kde to spojuji? Vypsal jsem jen obě technologie ASP.NET -> s tím, že tamní stavba MVC uvoluje snazší oddělení kódu.

Nahlásit jako SPAM
IP: 31.30.56.–
Kit+15
Guru
19. 2. 2016   #11
-
0
-

#5 Matěj Andrle
Právě tady:

..a právě proto se neodvažuji psát v PHP o MVC. Nic takového se v PHP vyloženě učinit nedá...

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý