Portál AbcLinuxu, 6. května 2025 01:08
Ak máte dobrú architektúru PHP aplikácie, napríklad MVC, tak žiadny template engine nepotrebujete.
Ak máte dobrú architektúru PHP aplikácie, napríklad MVC, tak žiadny template engine nepotrebujete.V clancich, na ktere odkazujete, si autor templating engine napise sam, misto aby pouzil jiny, tak o co jde? Paradigma MVC princip sablony IMHO implicitne vyzaduje.
na začátku souboru naplním proměnné a na konci už mám jenom HTML kód a výpis proměnných. Přípaně můžu část s HTML kódem a výpisem proměnných includovat z odděleného souboru.A to vam vubec nevadi nehorazna neprehlednost tohohle paskvilu? Vsechny ty echa, prepinani kontextu PHP/XHTML a dalsi blbosti? Templatovani je suverenne nejprehlednejsi zpusob oddeleni controlleru a view.
Results found: <?=$total_rows ?><br> <? if (count($rows) > 0): ?> <? foreach ($rows as $row): ?> <?=$row['last_name'];?> <? endforeach; ?> <? endif; ?>
Ako som uviedol v mojom predchádzajúcom príspevku, je to len záležitosťou správnej architektúry celej aplikácie. To čo som vám ukázal je skutočne všetko čo môže použiť u nás HTML designer.
Dúfam že ste to pochopil a postúpil z kategórie "cvičená opica".
HTML designér musí byť schopný naučiť sa PHP echo, if-else, foreach.Blbosť, template systém by mal byť nezavislým rozšírením HTML. To, že je php jazyk pre idiotov neznamená, že ho musí ovládať každý.
<tmpl:foreach name="blabla_list"> <option><tmpl:variable name="value"/></option> </tmpl:foreach>a programátor by si to už mal vedieť skonvertovať (v najhoršom XSLT do Smarty)
Žádným slušným slovem nelze nazvat počin génia, který se snaží oddělit prezentační vrstvu a vrstu logiky a skončí tím, že do prezentační vrtvy začne cpát cykly, formátovací funkce, rozhodovací bloky a jiné pičičurinky.Nejak mi uniklo, ze to vypustil nekdo jiny.
Samozdrejme, ze business logika mezi html byt nema, ale zase na druhou stranu stranka muze ruzne vypadat pri ruznych podminkach. Samozdrejmne ty podminky si musi programator predem rozhodnou v business logice - do sablony musi jit uz hotova rozhodnoti.
Bohuzel jsem jiz kody, kde se tabulka tvori primo pri nacitani dat z databaze videl.
Jeste bych zminil jednu super vec, kterou mohou sablony poskytnout - muzete mit obecnou obalku stranek a do te pak jen zasazovat konkretni moduly. To sice smarty nema dotazene do dokonalosti - neni to prece oplny obecny framework, ale urcite to lze pouzit.
Žádným slušným slovem nelze nazvat počin génia, který se snaží oddělit prezentační vrstvu a vrstu logiky a skončí tím, že do prezentační vrtvy začne cpát cykly, formátovací funkce, rozhodovací bloky a jiné pičičurinky.cykly? ako by ste chcel inak vypisovať x častí rovnakého typu ? (príklad: články, novinky)
escape=url, escape=html
ano, zvyšok niečo sa týka šablón, jediná knižnica, čo ma svojimi vlastnosťami ako tak uspokojila, je HTML::Template (ale to sa netýka php)
jednoho dne budou posílat jen to původní XML a příslušný XSLT. To se ale nikdy nestane - je to slepá uličkaŽe tohle už dnes v prohlížečích funguje, to vás asi moc netrápí, že?
input=text
, cokoliv složitějšího (už i ten seznam), vyžaduje složitější manipulace. Pravda, taky je to AJAX, ale většinou si pod AJAXem člověk představí nějaké složitější GUI komponenty.
Jak se zotaví aplikace v prostředí client-server?Před započetím déletrvající operace uživatele o déletrvající operaci informuje (to v AJAXu lze), v okamžiku korektního ukončení operace tuto informaci skryje (to v AJAXu lze), v okamžiku nekorektního ukončení tuto informaci taky skryje a zobrazí chybovou zprávu (v AJAXu nelze), a umožní uživateli akci zopakovat (v AJAXu lze, ale nikdo neví, jak to dopadne), v průběhu celé operace informuje uživatele o jejím průběhu (v AJAXu nelze) a umožní jí přerušit (v AJAXu nelze).
Vám běžně chodí jen půlky stránek a skriptů?Ano, běžně.
Mimochodem TUI s klávesovými zkratkami je prototypem velmi vhodného a vysoce produktivního prostředí.Vysoce produktivní prostředí je do určité míry komplexity systému/ů. Pokud uživatel používá více systémů nebo je systém rozsáhlý, je množství naučených postupů nezvládnutelné. Mimoto AJAX klávesové zkratky umožňuje používat jen v omezené míře, přitom klávesové zkratky jsou právě to, co činí ono TUI s klávesovými zkratkami vysoce produktivním prostředím.
pokud výhodu AJAXu vidíte pouze v možnosti vytvářet i velmi složité, obskurní widgety?Naopak, v nemožnosti AJAXu vytvářet vysoce efektivní a provázané widgety vidím jeho nevýhodu.
Opravdu? Viděl jste někdy opravdu enterprise aplikaci, velký informační systém?Viděl už jsem dost informačních systémů, které se nezabývali právě takovými drobnostmi, jako je práce se schránkou, klávesové zkratky, ovládání klávesnicí nebo myší, změna velikosti oken, multi document interface, rychlé přepínání mezi detailem a celkem. A pracovat se s nimi sice dalo, ale bylo to hodně neefektivní.
Můžete mi napsat proč by nemělo být možné monitorovat déletrvající operaci? Je to komplikovanější, jedná se o asynchronní proces, ale pokud použijete kontrolní spojení, pak to možné prostě je.Možné to není. Kontrolním spojením můžete monitorovat odesílání ze serveru, ale pro monitoring je důležité monitorovat příjem u klienta – a tam máte jen dva stavy – počátek a konec. Nic mezi tím nezjistíte. Navíc prohlížeče i servery mají obvykle nastaven limit pro počet současných spojení, takže s těmi kontrolními spojeními se také musí zacházet opatrně.
Stejně jako je možné operaci přerušit. Je to sice náročnější na server, ale pokud je to nezbytné, co naděláte.Opět – můžu přerušit vysílání, ale ne příjem. I když přeruším vysílání, pořád ještě musím zpracovat a zahodit již odeslaná data.
Můžete proti AJAXu argumentovat, ale Vámi popisované nevýhody jsou obecné AJAX nespecifické nevýhody technologie nad HTTP.Tohle konkrétně jsou nevýhody specifické pro AJAX, jiné technologie komunikující přes HTTP umožňují sledovat množství přenesených dat, nastavit timeouty spojení, dozvědět se, že se spojení přerušilo atd.
Dokud zde nebude něco jiného, obdobně silně standardizovaného a 100% kompatibilního, pak se jedná o čistě akademickou diskusi.Nikdy jsem netvrdil, že tady nyní něco lepšího máme. Říkal jsem jen to, že AJAX je sice zatím to nejlepší, ale je to z nouze ctnost a než vymýšlet, jak vylepšit nevylepšitelný AJAX, je potřeba zaměřit se na vývoj něčeho nového, co bude vytvořeno s ohledem na tvorbu GUI a interaktivitu.
Co to je prerusit vysilani, prerusit prijem? Vy snad dokazete prerusit predavani parametru a navratovych hodnot mezi procedurami v desktop aplikaci.V desktop aplikaci můžu důvodně očekávat, že volání funkce bude trvat v řádu milisekund. Při asynchronní komunikaci musí počítat s tím, že může trvat sekundy i desítky sekund.
Copak XMLHttpRequest neumoznuje nastavit timeout?Ne.
Copak nedokazete zjistit mnostvi dat prenesenych timto kanalem.Ne.
A co si asi myslite, ze XMLHttpRequest vlastne je? Jak se asi lisi od bezneho GET/POST pozadavku? … Jinak se jedna o bezny HTTP request, to XML je tam jaksi nedopatrenim navicBěžný HTTP request umožňuje odesílat i přijímat proud dat (postupné zpracování), nastavovat timeouty apod. Tj. umožňuje mi řídit přenos dat – ne jen dát nějaký požadavek a pak se modlit, abych v dohledné době dostal odpověď. XMLHttpRequest má sice navíc XML, ale hlavně mu spousta podstatných funkcí oproti HTTP requestu chybí! (Resp. má je skryté v interní implementaci, nedostupné pro AJAX aplikaci.))
XMLHttpRequest umoznuje samozrejme nastavit timeout.Jak?
XMLHttpRequest object obsahuje metodu abort, a pozadavek lze tudiz stornovat naprosto kdykoliv. A protoze muzete pozadavek zaslat jako asynchronni neblokujici, je jen na Vas, jaky timeout si nastavite a ve kterem okamziku pozadavek stornujete.Timeout v síťové komunikaci má být ochranou před nečekaným výpadkem komunikace. Takže jediná rozumná implementace timeoutu je měření doby, která uplynula od posledních přijatých dat. Pokud nastavíte "externí" timeout (tj. čas vůbec není svázán se síťovou komunikací), jako to můžete udělat pro
XMLHttpRequest
s metodou abort()
, můžete nastavit nějaký pevný čas, takže se komunikace bude zbytečně přerušovat při posílání většího množství dat nebo zatížené síti, nebo si musíte předem zjistit množství dat a podle něj nastavit timeout, nebo timeout řídit z dalšího spojení. Ani jedno není zrovna efektivní.
Navíc mám pocit, že abort()
se v některých implementacích choval divně a stahování přerušil jen zdánlivě, ve skutečnosti se skrytě stejně stáhl soubor celý. Ale to už je možná vpořádku.
http://www.nusphere.com/products/phpdock.htmPHP zrovna nemusím, ale koukám, že už je to nějaký pátek, co jsem s ním dělal, a že už od té doby existují asi i dobrá IDE.
Jinak, díky za diskusi.Rádo se stalo, nápodobně.
většinou si pod AJAXem člověk představí nějaké složitější GUI komponenty.bohuzel
doufají, že jednoho dne budou posílat jen to původní XML a příslušný XSLTNo, pokud jako jedine vyuziti XSLT vidite transformaci jednoho XML souboru jednim XSL souborem a pak poslani do prohlizece, tak pak se neni co divit vasim recim.
(html) (head)(/head) (body) (h1)(/h1) (/body) (/html)
(html (head (title "Titulek")) (body (h 1 "Nadpis")))
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.