Jak zavolat třídu v PHP podle zadané url

Ivan Nový

Re:Jak zavolat třídu v PHP podle zadané url
« Odpověď #15 kdy: 22. 03. 2017, 07:40:50 »
Filozofie PHP byla vždy taková, že nasával módní trendy z jiných jazyků. Vždyť je to vidět i v pojmenování objektů standardních knihoven, když byla módní Java, nasával prvky Javy, když byl módní Python, nasával prvky Pythonu. Je tedy logické, že ve frameworcích nasává jiné módní věci.

Jinak příklad z úvodní otázky se dá řešit v PHP i takto funkcionálně:

Kód: [Vybrat]
implode('\', array_map('ucfirst', explode('/', implode('', array_map('ucfirst', explode('-', $url))))).'()'


Ivan Nový

Re:Jak zavolat třídu v PHP podle zadané url
« Odpověď #16 kdy: 22. 03. 2017, 08:11:30 »
A nebo taky tak, což bude asi rychlejší:

Kód: [Vybrat]
str_replace('/', '\\', str_replace('-', '', ucwords($url, '/-'))).'()'

Ivan Nový

Re:Jak zavolat třídu v PHP podle zadané url
« Odpověď #17 kdy: 22. 03. 2017, 08:21:49 »
A nebo taky tak:

Kód: [Vybrat]
strtr(ucwords($url, '/-'), array('/' => '\\', '-' => '')).'()'

Re:Jak zavolat třídu v PHP podle zadané url
« Odpověď #18 kdy: 22. 03. 2017, 08:45:47 »
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.

Ivan Nový

Re:Jak zavolat třídu v PHP podle zadané url
« Odpověď #19 kdy: 22. 03. 2017, 08:59:25 »
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.

U frameworků není podstatné, zda to dělají dobře a nebo špatně, ale že to lidé, kteří je používají, dělají stejně blbě, nebo dobře, tedy vypočitatelně. Což je obvyklá výhoda neformální kontextové standardizace.


Ivan Nový

Re:Jak zavolat třídu v PHP podle zadané url
« Odpověď #20 kdy: 22. 03. 2017, 09:04:15 »
Hezkým příkladem té standardizace je Odoo, který to přivedl k dokonalosti, kde minimálními prostředky vyjádříte maximum, dokonce do rozumné úrovně standardizuje postupy používané na serveru v Pythonu a v prohlížeči v Javascriptu.

Kit

Re:Jak zavolat třídu v PHP podle zadané url
« Odpověď #21 kdy: 22. 03. 2017, 12:12:13 »
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('/' => '\\', '-' => '')).'()'

Což o to, rychlejší to asi bude, ale obvykle je nutné udělat ještě nějaké další úpravy - minimálně přidat vendora, vyfiltrovat slova začínající tečkou, ...

V obou uvedených případech bych to rozepsal minimálně na dva řádky kvůli snazšímu udržování kódu.