Autor Zpráva
sexusbtw
Profil
Zdravím,
chtěl bych oslovit ty z vás, kdo se již pokoušeli sestavit univerzální vlastní šablonovací systém.
Dosud to dělám pomocí require takto:

if(File_Exists(DIR_FS.DIR_MODULES.$_GET['page'].'.php')){
require_once(DIR_FS.DIR_MODULES.$_GET['page'].'.php');
}else{
require_once(DIR_FS.DIR_MODULES.'_notfound.php');
}


Mám za to, že je k dispozici lepší způsob. Třeba natáhnout kód (neincludovat), prohnat ho sadou funkcí a až pak spustit php kód.
Používat už zaběhlé CMS (Drupal atd.) se mi nehodí, ptž. málokdo se bezpečně vyzná v sofistikovaném cízím kódu.
Byl bych moc rád za každou radu, nebo i link na seriál o stavbě větších stránek se šablonami...
Díky..
srigi
Profil
sexusbtw
Moj mikro MVC framework.
joe
Profil
Tohle se mi moc jako šablonovací systém nejeví. Spíš to vypadá na nezabezpečený include...

Třeba natáhnout kód (neincludovat), prohnat ho sadou funkcí a až pak spustit php kód.

Nevím co si představuješ pod tímto. Dělá se to opačně. Napřed provedeš nějakou aplikační logiku, uložíš si výsledky do proměnných, které pak použiješ v šabloně.
Úkol šablonovacího systému je ten, že za definovanou syntaxi nahradí právě ty data z proměnných. Otázka je, jestli ti k něčemu takový systém bude.
AM_
Profil
Zvažoval jsi použití již existujících systémů, třeba Smarty? Ten umí přesně to, co tu popisuješ, je velice pěkně napsaný, a ušetříš si možná desítky hodin práce.
sexusbtw
Profil
No, koukal jsem zde na serial a pripadaji mi moc slozite pro me ucely.

joe
Tohle se mi moc jako šablonovací systém nejeví. Spíš to vypadá na nezabezpečený include...
trošku jsem to zjednodušil, protože používám mod_rewrite, takže název souboru se indukuje pomocí funkce
á propos, proč myslíš nezabezpečený? prochází se jen lokální soubory, pokud tento neexistuje, načte se soubor e404 - nevidím příležitost k potenciálnímu útoku...
joe
Profil
sexusbtw
Spíš špatně napsaný, než nezabezpečený :-)

Nevím sice předem co máš uložené v DIR_FS a DIR_MODULES, ale pokud bych za page dal třeba ../index (samozřejmě tohle fungovat nemusí) mohlo by se ti to zacyklit.
panhuhu
Profil
Pokud hledáš něco jednoduššího, můžes zkusit XTemplates. Jedná se o jednu třídu, nic náročného na pochopeni (samozrejme v porovnani proti robustnim Smarty šablonám).
AM_
Profil
jojo, existují i jednoduché již napsané šablony. Ale u Smarty je spíš problém s interní složitostí a tedy výkonem, na webu, který načte řekněme 100 lidí za sekundu, už by to nebylo nejlepší řešení. Co se týče jednoduchosti, já to pochopil asi za 10 minut, a mají velice pěkně udělanou dokumentaci, takže pokud si s ní poradíš v angličtině (možná by se dala najít i česky, já ale neměl potřebu) a nejsi v programování úplný začátečník, pracovat se Smarty je vážně radost. Taky jsem nejdřív chtěl zkusit jednodušší systém, ale když jsem při programování druhé sekce zjistil, že v něm plno věcí nedám dohromady, bylo rozhodnuto :)
dRaGen
Profil
AM_
Co tedy navrhuješ za framework pokud je Smarty při více lidech náročný na systém?
Na Smarty webu jsem našel "It is extremely fast. "
AM_
Profil
Při více lidech jsem myslel řádově stovek refreshů za sekundu, to jsou weby s návštěvností miliónů lidí denně, jako například seznam, google atd... a podobný web jsem nikdy nerealizoval:) je to spíš můj odhad, že tam se používá kód více šitý na míru, pokud tu o tom někdo víte více, opravte mě. Ale hlavně jsem chtěl zdůraznit, že co se týče použití je opravdu jednoduchý.
dRaGen
Profil
Aha to sme si akorát nerozumněli :) zmátlo mě to číslo ... google má v řádech milionech dotazů za sekundu ...
AM_
Profil
dRaGen
ok:) seznam má okolo 2mil. návštěv denně, tj asi 100 unikátních návštěv za sekundu z čehož soudím několik 1000 refreshů za sekundu. google má pochopiteně mnohem mnohem víc :)
panhuhu
Profil
Smarty umi cachovat obsah, tim serveru znacne odlehci. Samozrejme do urcite urovne. Seznam.cz pouziva svuj vlastni sablonovaci system Teng.

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