« 1 2 »
Autor Zpráva
tomas N.
Profil *
ked dobre rozumiem, tak dobre navrhnuta webova aplikacia by mala pouzivat pouzivat rozne smarty-like templaty na oddelenie HTML kodu od logiky.
Pozeral som ale zdrojove kody wordpressu a ten ma velmi casto zmiesane PHP a HTML.
Znamena to teda, ze je zle navrhnuty?
Resp. ake su vynimky z toho pravidla: Pouzivaj templaty, ked mozes???

Vdaka
hans
Profil *
tomas N.:
To záleží, jestli třeba nepoužívá PHP template - čili že view logika je také v jednom souboru, ale místo
<h1>{$nadpis}</h1>
je tam třeba
<h1><?php echo $nadpis ?></h1>
nebo
<h1><?= $nadpis ?></h1>
Str4wberry
Profil
WP používá přímo PHP šablony. Na tom není nic špatného. Tvé pravidlo bych za pravidlo nepovažoval. Lepší je používat šablony podle toho, kdy se to vyplatí. Někdy je nejvýhodnější je nepoužívat, někdy je nejvýhodnější používat PHP šablony a někdy nějaký šablonovací systém s vlastní syntaxí.
Mastodont
Profil
tomas N.:
Smarty-like šablony "ulehčují" práci akorát návrháři, z hlediska kódu je to jen další vrstva, kterou musíš parsovat. A pokud má šablonový systém vlastní cache kvůli urychlení, tak se z funkčního hlediska od PHP šablon vlastně neliší ...

Že je WP špatně navržený, to taky říkají hodně OOP-káři :-)
tomas N.
Profil *
Str4wberry, Mastodont:
kedy sa teda vyplati pouzivat sablony? Da sa to aspon trosku zobecnit, ze kedy ano a kedy definitivne nie?
Majkl578
Profil
tomas N.:
Da sa to aspon trosku zobecnit, ze kedy ano a kedy definitivne nie?
Jistěže. Ve chvíli, kdy píšeš větší projekt a nechceš ho psát prasácky, dojdeš k názoru, že chceš použít MVC/MVP. A v tenhle okamžik se dostáváš právě k šablonové vrstvě (písmenko V - view). A zároveň asi nebudeš chtět vymýšlet kolo, takže budeš chtít použít nějaký MVC/MVP framework. A tak narazíš na nějaký, jako třeba Nette, které spadí mezi MVP a šablonovací systém používá vlastní, Latte, syntaxí podobné Smarty, ale chytřejší a lepší.
Str4wberry
Profil
Také je třeba zohlednit, kdo bude šablony vytvářet. U WordPressu je v prasáckém návrhu výhoda, že kdokoliv se znalostí PHP může okamžitě tvořit, nemusí se učit nějaký šablonový pseudokód.
Mastodont
Profil
Majkl578:
V čem přesně je Latte "chytřejší a lepší? Vezmu-li příklad

<ul n:if="$items">
{foreach $items as $item}
    <li id="item-{$iterator->counter}">{$item|capitalize}</li>
{/foreach}
</ul>

tak je to zase jen "další vrstva, která se musí parsovat" a srozumitelnost nic moc. Že to je kratší zápis? To přece neznamená, že to je rychlejší.


tomas N.:
To ti neřeknu, nemám zas tolik praxe se šablonami, abych mohl říci, kdy "definitivně ne". Obecně ale platí, že samo PHP je dostatečně pružné. Šablonových systémů je více než 100 a žádný nezískal dominanci. Zato Wordpress žije na milionech webů i bez šablon.
tomas N.
Profil *
hmm, to znamena, ze je dobre mat nejak oddelenu logiku od zobrazovania, ale nie je to az tak esencialita?
Ako je na tom "konkurencia"? drupal, joomla, etc? Oni pouzivaju sablony?

Osobne hladam nejaky CMS, aby som sa poucil z jeho navrhu(a zlepsil svoje programatorske schopnosti a neziskal velmi "prasacke" navyky :-) ) a aby som ho vedel rychlo dalej rozsirovat (osobne si myslim, ze kody wordpressu som pochopil dost rychlo). Dufam ze wordpress predsalen nieje uplna prasacina (sam to este neviem zhodnotit) :-)
Mastodont
Profil
je dobre mat nejak oddelenu logiku od zobrazovania, ale nie je to az tak esencialita
To ne, esencialita to je, ale stačí k tomu oddělit výpočty od zobrazení, čili do šablon cpát jen výsledná data. Ukázku postavenou na čistém PHP máš tady:
http://massassi.com/php/articles/template_engines/
HosipLan
Profil
Mastodont:
Přečti si prosím dokumentaci o Latte pořádně: http://doc.nette.org/cs/templating

Už máš přečteno?
Takže jsi pochopil, co znamená context-aware escaping?
Pochopil jsi, že šablony se kešují (přeloží se jednou a pak jsou stejně rychlé jak PHP kód)?

Populární alternativou je Twig, ale ten je v některých věcech velice nešikovný.

tomas N.:
Ale kdepak, Wordpress je vymyšlený docela chytře, jenom je napsaný pro prasátka :)
Mastodont
Profil
HosipLan:
Ehm, proč by mne měl zajímat nějaký escaping? Mění to něco na tom, co jsem psal? pokud má šablonový systém vlastní cache kvůli urychlení, tak se z funkčního hlediska od PHP šablon vlastně neliší

Proč bych měl překládat šablony, když si ten PHP kód mohu napsat rovnou a navíc je přehlednější?
Nox
Profil
Mastodont:
protože bezpečnost? Potom ty hezky krátké (leč děravé) PHP příklady už tak ok nebudou

nevim, je přehlednější (4 z 6 znaků obsah)
{$var}
nebo (45 z 49 znaků balast)
<?php echo htmlspecialchars($var, ENT_NOQUOTES)?>

to že je tam mezivrstva je irelevantní - přepočet se provede 1x až do smazání cache, takže to nikdo nemá šanci zaznamenat

Jinak souhlas s Str4wberry, WP má díky svému designu nízkou bariéru a díky tomu vzniklo spoustu pluginů atd.
Majkl578
Profil
[#8] Mastodont:
Latte má oproti Smarty různé výhody - již zmíněné chytré (kontextové) escapování, , dodatečnou vazbu na konkrétní framework (logicky) zvyšující user (programmer) experience, příjemnější syntaxi a určitě by se dalo pokračovat. Navíc není tak vlezlé jako Smarty (nevynucuje použití { a } jen pro sebe). Ale ano, Smarty a Latte jsou si syntakticky poměrně blízko.

Ten kousek kódu, který jsi uvedl, by se dal napsat i kratším způsobem, např.:
<ul n:if="$items" n:inner-foreach="$items as $item"> 
    <li id="item-{$iterator->counter}">{$item|capitalize}</li>
</ul>

Ekvivalent by mimojiné v PHP byl takový (takto to vygeneruje Nette):
<?php if ($items): ?>
<ul>
<?php $iterations = 0; foreach ($iterator = $_l->its[] = new Nette\Iterators\CachingIterator($items) as $item): ?>
    <li id="item-<?php echo htmlSpecialChars($iterator->counter) ?>"><?php echo Nette\Templating\DefaultHelpers::escapeHtml($template->capitalize($item), ENT_NOQUOTES) ?></li>
<?php $iterations++; endforeach; array_pop($_l->its); $iterator = end($_l->its) ?>
</ul><?php endif ; ?>

srozumitelnost nic moc
To je velmi relativní. Totéž bych mohl říci i já (a další používající šablonové systémy) o tvém 10x delším výplodu v čistém PHP ([#13]).
PHP sice prapůvodně bylo samo o sobě šablonovacím jazykem, ale v současné době už jím rozhodně není.
Je sice hezké, že tu propaguješ vyhýbání se šablonovacím jazykům, nicméně jediný tvůj argument je „nechci se učit jinou, ikdyž kratší syntaxi“? Použití čistého PHP je buď a) nebezpečné (XSS) nebo b) nepřehledné a zdlouhavé. Použití šablonovacího systému je a) bezpečné i b) přehledné (stačí k tomu nemít dogmatický odpor).

Ukázku postavenou na čistém PHP máš tady
Asi nechápu, kam směřuješ. Latte nebo Smarty snad nejsou napsané v čistém PHP? Ono existuje i špinavé PHP?

tomas N.:
Osobne hladam nejaky CMS, aby som sa poucil z jeho navrhu
A proč vlastně hledáš výhradně CMS? Nebylo by lepší začít s nějakým frameworkem, který ti co se týče čistoty kódu dá mnohem více, než např. zmíněný Wordpress?

Nox:
WP má díky svému designu nízkou bariéru a díky tomu vzniklo spoustu pluginů atd.
Ono i s kvalitní architekturou by nebylo problém mít pluginy a rozšiřitelnost, horší je, že by bylo míň lidí, kteří by je dokázali napsat/psát.
Mastodont
Profil
Majkl578:
jediný tvůj argument je - ne, můj první argument byl ten, že TE představuje zbytečnou nadvrstvu. Na oddělení logiky od HTML kódu ji nepotřebuješ.
Ono existuje i špinavé PHP? čisté PHP = kód PHP bez nutnosti používat jinou syntaxi
zmíněné chytré (kontextové) escapování - to zjišťování kontextu probíhá jak? Nějakým reparsingem šablony, předpokládám. Namísto pár jednoduchých funkcí pro escapování v jednotlivých kontextech
další megavrstva. Ale je to chytré ...

A mnohokrát děkuji za tu ukázku kódu, kterou generuje Nette. Když je řeč o balastu, je to hezké srovnání.
<?php echo htmlspecialchars(strtoupper($var), ENT_NOQUOTES)?>
<?php echo Nette\Templating\DefaultHelpers::escapeHtml($template->capitalize($item), ENT_NOQUOTES) ?>

( I Wordpress má samozřejmě escapovací funkci, takže stačí napsat něco jako)
<?php echo e(strtoupper($var))?>



tomas N.:
Ako je na tom "konkurencia"? drupal, joomla, etc? Oni pouzivaju sablony?
Ano, oba dva. U Drupalu si můžeš vybrat z několika podporovaných enginů, což je asi ideální - do view vrstvy předáváš čisté stringy, pole nebo objekty a šablonovací systém pak může být libovolný, případně žádný.
Nox
Profil
Jenže s tím co generuje Nette skoro nikdy nepřijdeš do styku... takže jen {$var}

Proč reparsovat? Stačí parsovat, tedy při parsování se jen mění proměnná s aktuálním kontextem

Takže pořád nevidim důvod* kromě toho, že detekci kontextu a další věci bude dělat člověk ručně

*) nadvrstva se v defakto 100% případů nepoužije
HosipLan
Profil
Mastodont:
Já snad ani nechci věřit tomu, že by jsi byl tak hloupý.
Jak můžeš považovat za bezpečnější a lepší kód, který si napíšeš sám, když je několikrát složitější a navíc sám ignoruješ kontextové escapování?

Už ti to tady nikdo nebaští, děláš si z nás srandu, že? :) trololo
Kry5
Profil
<?php echo e(strtoupper($var))?>
Z té funkce e() opravdu hned poznám co dělá...
Str4wberry
Profil
když je několikrát složitější

To platí možná tak za předpokladu, že budu mít editor, co umí napovídat ty Latte atributy apod. Pokud ho mít nebudu, tak je šance chyby v případě Latte mnohem vyšší, protože to všechno budu muset psát ručně a snadno vytvořím překlep. A pokud budu používat snippety/makra, tak mi je nějaká délka ukradená a čisté PHP má výhodu, že mu ihned rozumí cca o 100 % více lidí než Latte syntaxi. :–)
Mastodont
Profil
HosipLan:
OLOL.
„Řekl jste fuj, cizinče?“ „Fuj Kolalokově limonádě?“
„Ano, fuj Kolalokově limonádě!“
Petr Kysela
Profil
Rád se přidám :-D

Po dvou letech předělávám projekt, fungoval asi tak, jak píše Mastodont, to znamená výpis pomocí <?php echo(); ?>, aplikační logika rovnou do HTML (aby to bylo rychlé a šetřilo se místem - ironie) a nějaké escapování, pro mě v té době nic neznamenalo.
Byl velký problém se ve spuštěném projektu vrtat a něco opravovat (chyby a výmysly klientů), protože takový zdrojový kód se přeci při vývoji nebude komentovat, kdo by psal <?php /* Tady vypisuji x, protože y není abc */ ?>, no ale kdo se v tom má po půl roce vyznat, prostě prasokód a výsledná ztráta cenného času...

Teď? Udělám si Latte (výborný nápoj) a začnu dělat šablonu v Latte. Co mi to dá a ušetří?
1. při zachování stejné(bezpečnější) funkčnosti z 328 řádků v "čistém PHP" => směšných 86 řádků v "Latte"
2. přehlednější, komentovaný(2 řádky, víc není potřeba, protože i Mastodont by po půl roce pochopil) kód, který můžu bez problémů upravit i za rok a budu vědět co dělá.
3. hledání chyb? už nemusím číst jak Mastodont zdrojový kód a hledat, kde je chyba (hledat dlouho). Uložím šablonu, spustím aplikaci a vidím, neexistuje proměná $pooucSe na rádku 123

Výsledek?
Bez kávy a Latte ani ránu, chci si užívat a ne pořád sedět za počítačem a nadávat na klienta, co si to zase vymyslel a že za ty peníze to dělat nebudu, trotože Mastodontova šablona bude ve výsledku pekelně drahá.

Mastodont:
Nedej bože, aby jsi tady začal ještě něco o formulářích, jinak na Tebe pošlu Anakina... Nezlob se na mě, také jsem šablonám a frameworkům vzdoroval, ale začni s něčím pracovat, řekni si: "Tenhle projekt postavím na Nette Frameworku, který používá 123 => hodně vývojářů, kterým nepadají šedivé vlasy hrůzou".

Jsem tak na úrovni HosipLanových kotníků, když vidím jeho práce na githubu, ale nejsem hlupák a poučím se rád z chyb, kdyby jsi nebyl Mastodont, také to třeba zkusíš.
HosipLan
Profil
Str4wberry:
Fóra jsou plná stupidních dotazů "jaktože mě hackli? používám přece htmlspecialchars!" Ale za celou dobu, co sleduji vývoj Nette jsem neviděl jediný dotaz "jak že to fungují ty složené závorky v Latte?".

Latte je smarty-like jazyk a je až stupidně jednoduchý. Makra umí napovídat plugin do Netbeans a zvýrazňovat je umí taky.

A to ani nemluvím o tom, že kdykoliv uděláš chybu v Latte, tak parser ti naprosto přesně řekne, co jsi udělal špatně.

A co kdybych editor co umí Latte nepoužíval? Já teď použivám PhpStorm a ten Latte neumí. Takže co? Nastavil jsem si, že koncovka .latte je Smarty a vesele zvýrazňuje. Ikdyž udělám překlep, tak mi to okamžitě oznámí parser a to v případě že bych byl tak slepý a nevšiml si, že jsem si rozbil zvýrazňování šablony, protože jsem neuzavřel makro.

Latte je prostě lepší.

PS: neříkám, že musíte používat Latte, klidně si žijte dál ve středověku, mně do toho nic není, ale nemám rád, když někdo šíří bludy.
Mastodont
Profil
Petr Kysela:
aplikační logika rovnou do HTML (aby to bylo rychlé a šetřilo se místem - ironie) a nějaké escapování, pro mě v té době nic neznamenalo
To asi nepíšeš o mně, protože aplikační logika do HTML zásadně nepatří a escapovat se musí, to jsou úplný základy.

řekni si: "Tenhle projekt postavím na Nette Frameworku
Proč bych to měl říkat, Symphony neskončil ... :-)


A vůbec, původní dotaz zněl wordpress ma velmi casto zmiesane PHP a HTML. Znamena to teda, ze je zle navrhnuty?
Já říkám, že kvůli tomu zrovna ne, i když zel je v něm samozřejmě dost, počínaje šíleným souborem index.php.
Str4wberry
Profil
Reakce na Petra Kyselu:
A pointa je, že tě Latte nenechá psát prasácky a nenechá tě dělat chyby? To přece nemusíš ani v samotném PHP.

Tvoje příhoda mi dost připomíná zdejší dřívější debaty HTML vs. XHTML, kde se porovnávalo prasácké HTML s čistým XHTML. Někdo zkrátka nepotřebuje bič v podobě něčeho přísného, ale dokáže se dobrými návyky řídit sám od sebe.


Reakce na HosipLana:
Latte je prostě lepší.
A basta!

Makra umí napovídat plugin do Netbeans
Takže aby se dalo psát tak komfortně jako v čistém PHP, tak je zapotřebí jeden konkrétní editor a ještě spoléhat na to, že zrovna v dané verzi bude fungovat jeden určitý plugin?

Já teď použivám PhpStorm a ten Latte neumí. Takže co? Nastavil jsem si, že koncovka .latte je Smarty a vesele zvýrazňuje.
Zvýrazňování je sice pěkné, ale co automatické dokončování a napovídání?

v případě že bych byl tak slepý a nevšiml si, že jsem si rozbil zvýrazňování šablony, protože jsem neuzavřel makro
Překlep můžeš udělat i bez rozhození zvýrazňování.

ale nemám rád, když někdo šíří bludy
Co konkrétně, prosím, z mého předchozího příspěvku považuješ za bludy?
HosipLan
Profil
Str4wberry:
A pointa je, že tě Latte nenechá psát prasácky a nenechá tě dělat chyby? To přece nemusíš ani v samotném PHP.

Jistě, máš pravdu. Ale co lidský faktor? Nejsme stroje, aby jsme psali dokonalý kód. Tuhle zapomenu parametr, nebo předám špatný? Konkrétně narážím na to, že text a attributy tagů se escapují jinak. A co teprve javascript v attributu? To je všechno zbytečně složité a není potřeba si to pamatovat, když inteligentní šablonovací systém tohle umí sám pořešit a nemusím si dělat hlavu, jestli jsem string obalil dostatečným množstvím funkcí se správnými parametry.

<a onclick="alert({$var})">{$foo}</a>

Je oproti tomu, jak bys to musel zapsat v čistém HTML a PHP naprostá pohádka. Jak to můžeš nevidět?

Tvoje příhoda mi dost připomíná zdejší dřívější debaty HTML vs. XHTML, kde se porovnávalo prasácké HTML s čistým XHTML. Někdo zkrátka nepotřebuje bič v podobě něčeho přísného, ale dokáže se dobrými návyky řídit sám od sebe.

S tím, že boje HTML vs XHTML jsou hloupost s tebou také souhlasím, ale tohle dle mého není vhodné přirovnání.
Čisté PHP + HTML oproti Latte je mnohem, mnohem větší rozdíl, než než pár lomítek na koncích tagů. Nehledě na to, že si můžeš nastavit, jestli má Latte pomáhat s generováním validního HTML, nebo XHTML (ano umí ti doplnit lomítka, když na ně zapomeneš).

Takže aby se dalo psát tak komfortně jako v čistém PHP...

Řekni mi, kolik přesně písmenek si necháš napovědět, pokud píšeš php funkce? Rád si nechám napovídat od IDE názvy metod, nebo vlastnosti. Ale když dojde na nativní funkce phpka, většinou je mám rychleji napsané, než mi je nabídne editor. Třeba takové strtoupper si nechám rád napovědět, ale v Latte takové funkce prakticky nejsou.

Můžeš si registrovat helpery a ty můžou mít jaký chceš název. Takže je zase napíšeš rychleji, než kdyby ti napovídal editor/IDE.

Schválně, co se ti napíše lépe, otevři si poznámkový blok, PsPad, nebo svůj oblídený editor a co napíšeš rychleji

Latte:
<div id="{$var|upper}">{$foo}</div>

Tvůj super bezpečný kód s napovídám, makry a napsaný programátorem, co nedělá překlepy:
<div id="<?php echo strtoupper(htmlspecialchars($var)); ?>"><?php echo strtoupper(htmlspecialchars($foo, ENT_NOQUOTES)); ?></div>

Jsem už trošku zdegenerovaný od Latte, takže si nejsem jistý, jestli jsem to vůbec napsal správně :)

... je zapotřebí jeden konkrétní editor ...

To sice ano

... a ještě spoléhat na to, že zrovna v dané verzi bude fungovat jeden určitý plugin?

Od nějaké verze 6.něco funguje ve všech. Netbeans tohle mají docela dobře zařízené :)

Zvýrazňování je sice pěkné, ale co automatické dokončování a napovídání?

Když si 20x napíšeš metodu str_replace(), netvrď mi, že si ji nezapamatuješ, i kdyby jsi nechtěl

Překlep můžeš udělat i bez rozhození zvýrazňování.

Ale zajisté. Od toho je tu parser, který mi řekne, že nezná makro, nezná helper, nezná proměnnou... :) Navíc v Nette mi to vykreslí v krásné výjimce a ukáže i řádek s chybou ;)

Co konkrétně, prosím, z mého předchozího příspěvku považuješ za bludy?

Né všechno, s částí se dá souhlasit. A hlavně, to nemělo být primárně na tebe, ale tak obecně. S čím bych si tedy konkrétně dovolil nesouhlasit je tohle:

.. je šance chyby v případě Latte mnohem vyšší, protože to všechno budu muset psát ručně a snadno vytvořím překlep.

IDE tě nezachrání. PHP není striktně typovaný jazyk, aby ti IDE opravovalo každou čárečku. To stejné v HTML, snadno uděláš chybu, ale hned ji vidíš. Když ti nerozbije zvýrazňování, tak ti buď umře PHPko, nebo script negeneruje očekávaný výsledek. Toho si předpokládám všimneš při F5 v prohlížeči. A přesně v tenhle moment ti taky Latte poví, že jsi něco udělal špatně a kde jsi jakou chybu udělal.

Abych nebyl úplně OT, tak ještě jednou zopakuji svoji odpověď pro tomas N.
Wordpres není špatně navrhnutý, jenom není úplně nejlépe napsaný. Někdo z Nette komunity dokonce napsal úpravu pro Wordpress, aby podporoval Latte. Pokud chceš Wordpress používat, určitě se po tomhle podívej. Ušetří ti to hodně bolesti.
tomas N.
Profil *
akurat pozeram nette framework, ked sa uz o nom tolko pise a asi ho tiez omrknem :-)
Lamicz
Profil
Frameworky jsou fajn, ale osobně bych ho použil, až bych si byl 100 procent jistý, že chápu, jak funguje. Nemám rád black box - "tady něco napíšu a no mi to nějakou magií udělá toto". Druhá věc, co se mi obecně nelíbí, je teorie - co neni objekt, nebo ho aspoň nevrací, je špatně. Nevidím důvod. Zastavám názor, raději dobře procedurálně, než blbě objektově. Další věc, co nemám rád, je: "tohle FW neumí nebo na to není dokumentace, tak to tam prostě nemám, no...". P.S. jednalo se o stránkování galerie - super, to klient určitě ocení... Já se snažím mít pořád na mysli poměr režie a složitost skriptu vs. ta "blbá" web stránka - t.j. je to skriptovací jazyk, kde se něco spustí a výsledek je HTML - a furt dokola - nedělejme z toho komplexní desktop aplikaci. Mám pocit, že občas se to moc "řeší" a zapomíná na podstatu PHP.
Str4wberry
Profil
Reakce na HosipLana:
Je oproti tomu, jak bys to musel zapsat v čistém HTML a PHP naprostá pohádka. Jak to můžeš nevidět?
Takhle to vypadá krásně, ale jak často je potřeba řešit vypisování dat od uživatele do javascriptového kódu? Kdybych měl vycházet z kódu této diskuse, tak by se tato funkce (Context-Aware Escaping) využila cca jednou (je ale pravda, že ji tam tvůrci neměli). :–) Zkrátka to nemusí být vlastnost, bez které se člověk neobejde.

Čisté PHP + HTML oproti Latte je mnohem, mnohem větší rozdíl
Já to myslel jinak. Nemá smysl porovnávat špatné používání jednoho se správným používáním druhého.

Řekni mi, kolik přesně písmenek si necháš napovědět, pokud píšeš php funkce? […]
Vycházel jsem z příkladu a třeba něco jako n:inner-foreach bych asi ručně psát nechtěl.

Tvůj super bezpečný kód s napovídám
Jak už jsem naznačil výše. Obdobný kód bude potřeba zapsat skutečně výjimečně. V drtivé většině případů bude stačit:
<div id="<?=$var?>"><?=$foo?></div>

Když si 20x napíšeš metodu str_replace(), netvrď mi, že si ji nezapamatuješ, i kdyby jsi nechtěl
Zapamatuji, ale zmíněné napovídání a doplňování používám právě proto, abych eliminoval překlepy.

Latte poví, že jsi něco udělal špatně a kde jsi jakou chybu udělal
Je mi jasné, že mi Latte všechno hezky poví. Ale, jak už jsem psal, pokud budu celou šablonu psát znak od znaku, tak je logicky vyšší šance překlepu. To je prostě fakt.

Abych z toho udělal nějaký závěr. Za určitých podmínek je zkrátka fixace na jeden konkrétní editor a psaní v alternativní syntaxi velká daň za některá větší či menší vylepšení/usnadnění, které Latte přináší.
Ugo
Profil
Jako někdo kdo vystupuje jako odpůrce Nette - někdo musí mít jinej názor než nejlepší věc na světě, jinak by vývoj šel kam, kdyby takovej byl každej? Ano Nette je oproti jiným FW docela nešikovné a složité, navíc je to opravdu velká černá skříň plná magie. Ale úprava (či převzetí názvu) Latte (latte.org) je výborná, jediné co se mi nelíbí je právě to escapování, aplikace má dělat to co řeknu já a to co já očekávám a ne aby si žila vlastním životem jako nějakej drupal. Takže za mě bych prohodil syntaxi {$var} a {!$var} aby vykřičník (i když je to logická negace) escapoval, prostě mu řeknu POZOR! tady jsou nebezpečná data. Jinak samotný PHP je jako šabl. systém velice dobré, jak píše Str4wberry, escapování na většině místech není potřeba, protože na ně uživatel nemůže sáhnout. A escapovat něco co není potřeba není jen zbytečnost, ale zdržování. Proč se asi u FW jako třeba nette zdá že maj funkci slow() {sleep(5)}. FW by neměl brát programátorovi kontrolu nad aplikací, měl by jí jen usnadnit, bohužel u velkých FW mezi které nette patří (aspoň pomalostí) mi to tka prostě přijde.

Zpátky k šablonám - v drupalu je taky čisté PHP, ale drupal je hroznej výtvor, je div že toho umí tolik a tvůrci nejsou v blázinci z nepřehlednosti. Mimo Latte znám jen smarty, s těmi dělám bohužel deně a jsou prostě nepoužitelné, oproti latte to je jak kyj a enterprise. Samotný php už je na tom lépe, takže když chceě šabl. systém - jedině Latte, škoda že nejde z Nette nějak lehko vypreparovat :D (i kvůli copyrightu)
Nox
Profil
Ugo:
Bezpečná data jsou maximálně ta, která vytvoříš v aplikaci nezávisle na jakémkoli externím vstupu (ani tam to není 100%, ale poměrně dost).
Cokoli vezmeš i z databáze je třeba brát jako potenciálně nebezpečné. Jsem proto maximálně pro zachování stávající syntaxe a stand. escapování.
Ono jde i o priority - Nette má prostě bezpečnost výš jak rychlost, proto radši dává defaultně ošetření a pokud to nechceš, dáš si vykřičník.

Ale souhlasím, že by rychlejší být mohlo, mno...
« 1 2 »

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0