echo $_GET['url'];
vypíše
/katalog/priroda-cr/voda-sladka/ryby-male
$obj = new \Controls\Katalog\PrirodaCr\VodaSladka\RybyMale ();
$obj = new \Controls\Error404 ();
$obj = new $class();
Hoď si to do bloku try .. catch. Při výjimce si ji zachyť a vyhoď 404.
$output = preg_replace_callback('/-(.?)/', function($m) {
return ucfirst($m[1]);
}, $input);
Podivej se napr na http://symfony.com/doc/current/routing.html
Welcome to the real world Neo. A za chvíli mu někdo poradí, ať to přepíše do javy :DPodivej se napr na http://symfony.com/doc/current/routing.html
To má být vtip? Kvůli šesti řádkům instalovat Symfony?
No, navrhnout Symfony (nebo jiny framework) je (asspon podle mych zkusenosti) nahodou docela dobrej napad. Protoze jinak si uzivatel udela skvely reseni po svym, vubec nepocita s tim, ze by tam mohla bejt bezpecnosti dira (protoze to PHPcko dneska prece umi kazdej, ne?) a pak se divi, kam zmizely ze serveru vsechny jeho data.Ano... a jsme opět u toho, jako vždy... HW je skoro zadarmo, zato člověk, kterej si dneska bez nějakýho FW ani neprdne a vlastně nemá ani páru, co a proč dělá, tak stojí ranec. Smutné, smutné, smutné. Ještě před pár roky by takoví lidi skončili na pokladně v supermarketu, protože na víc vlastně stejně nemají a současné IT je degradované na stejnou úroveň, jenom platy jsou vyšší, protože je lidí málo (je jich dost, jenom uklízečka si většinou ani nedovolí přemýšlet nad tím, že by šla programovat, i když na to většinou v pohodě má). Až doroste současná mladá generace, která v tom vyrůstá, platy pokladních budou vyšší, než "programátorů", protože těch budou plný pracáky. Výjimkou budou právě ti vývojáři frameworků a jazyků, protože to bude jediná opravdu kvalifikovaná práce, všichni javameni a spol se přesunou do kategorie lopata za 20k.
-- true story --
No, navrhnout Symfony (nebo jiny framework) je (asspon podle mych zkusenosti) nahodou docela dobrej napad. Protoze jinak si uzivatel udela skvely reseni po svym, vubec nepocita s tim, ze by tam mohla bejt bezpecnosti dira (protoze to PHPcko dneska prece umi kazdej, ne?) a pak se divi, kam zmizely ze serveru vsechny jeho data.
No, navrhnout Symfony (nebo jiny framework) je (asspon podle mych zkusenosti) nahodou docela dobrej napad. Protoze jinak si uzivatel udela skvely reseni po svym, vubec nepocita s tim, ze by tam mohla bejt bezpecnosti dira (protoze to PHPcko dneska prece umi kazdej, ne?) a pak se divi, kam zmizely ze serveru vsechny jeho data.
Zrovna v Doctrine jsem nedávno našel odkaz na jednu z mnoha vlastností, která však nebyla zdokumentována a ani Google neporadil, co mělo být jako volitelný čtvrtý parametr jedné z mnoha metod. Takže i slavné frameworky docela kulhají.
Ty bezpečnostní díry se i s frameworkem dají udělat docela snadno.
Celé se to točí kolem toho, že framework zpracovává nějaký doménově specifický jazyk. Čím víc toho ten framework umí, tím méně se stává doménově specifickým a tím víc je běžným jazykem interpretovaným uvnitř jiného interpretru. Stává se tak zbytečnou mezivrstvou s chabou dokumentací a nevyzpytatelným chováním.
Z toho vyplývá, že smysl mají pouze frameworky, které toho moc neumí, ale to co umí, umí dokonale. Obvykle už v PHP jsou ve formě standardních knihoven.
Úkolem frameworku není něco umět, ale standardizovat to, jak se co dělá.Kéž by... úkolem frameworku je často udělat prasárny za vývojáře a daný jazyk přiohnout nějakým směrem, takže věci, za který by se příčetný, průměrně inteligentní jedinec styděl, jsou najednou v pořádku, protože je udělal někdo jinej a schoval je do FW.
Úkolem frameworku není něco umět, ale standardizovat to, jak se co dělá.
... Jak psal Kit, je to velmi často zbytečná mezivrstva, která sice může vyřešit konkrétní problém "bez práce", ale často za cenu toho, že se používají vlastnosti frameworku optimalizované pro nějakou situaci i tam, kde se vůbec nehodí a lze je řešit velmi elegantně a efektivně v původním jazyce.
Když jsme u toho, Kit respect, protože je to jeden z mála lidí, kteří se nestydí za PHP a jeho rady evidentně pocházejí z praxe a mají hlavu a patu.
implode('\', array_map('ucfirst', explode('/', implode('', array_map('ucfirst', explode('-', $url))))).'()'
str_replace('/', '\\', str_replace('-', '', ucwords($url, '/-'))).'()'
strtr(ucwords($url, '/-'), array('/' => '\\', '-' => '')).'()'
Z toho vyplývá, že smysl mají pouze frameworky, které toho moc neumí, ale to co umí, umí dokonale. Obvykle už v PHP jsou ve formě standardních knihoven.První věta OK, pes je zakopaný v druhé větě: standardní knihovna PHP je strašný šmejd. Takže každý vývojář který v tom má dělat něco většího má dvě možnosti: buďto použije nějaký framework, nebo si napíše vlastní. Oboje má svoje velké nevýhody.
Z toho vyplývá, že smysl mají pouze frameworky, které toho moc neumí, ale to co umí, umí dokonale. Obvykle už v PHP jsou ve formě standardních knihoven.První věta OK, pes je zakopaný v druhé větě: standardní knihovna PHP je strašný šmejd. Takže každý vývojář který v tom má dělat něco většího má dvě možnosti: buďto použije nějaký framework, nebo si napíše vlastní. Oboje má svoje velké nevýhody.
A nebo taky tak, což bude asi rychlejší:Kód: [Vybrat]str_replace('/', '\\', str_replace('-', '', ucwords($url, '/-'))).'()'
A nebo taky tak:Kód: [Vybrat]strtr(ucwords($url, '/-'), array('/' => '\\', '-' => '')).'()'