Portál AbcLinuxu, 10. května 2025 01:04

Dotaz: PHP - Když jeden znak fakt nestačí

4.12.2014 22:35 Dedek
PHP - Když jeden znak fakt nestačí
Přečteno: 622×
Odpovědět | Admin
Ahoj, hledám nějaký znak, který by šel použít v názvu class (mimo podtržítka), neporadí někdo?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

FrostyX avatar 4.12.2014 23:18 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co za šílený název třídy vyrábíš? :-D. Standardně se používá CamelCase
FrostyX.cz | 1984 was not supposed to be an instruction manual.
4.12.2014 23:23 Dedek
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Potřebuji do toho zakomentovat nějak i cestu k té class :-( aby autolader věděl kde to načíst
4.12.2014 23:27 kozzi11
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
http://www.php-fig.org/psr/psr-4/
5.12.2014 00:31 Dedek
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Co tím je jako myšleno ???
kozzi avatar 5.12.2014 09:16 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí

to je odpoved na to jak se to ma dneska delat. Jak se ma vyuzivat namespace k hledani cesty tridy

Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
8.12.2014 10:06 Ivan Nový
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Osobně bych preferoval použití namespace, ale když jinak nedáte, můžete si napsat vlastní funkci autoload, ve které můžete libovolným způsobem analyzovat název třídy, a klidně v té funkci můžete mít zakomponovanou tabulku s přiřazením třída => cesta, například pomocí asociativního pole. Doplníte to skriptem, který ji automaticky vygeneruje. A nemusíte zachovávat nějakou umělou lexikální vazbu, mezi názvem třídy a adresářem, kde je umístěna.
4.12.2014 23:25 kozzi11
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Odpovědět | | Sbalit | Link | Blokovat | Admin
RTFM
5.12.2014 00:31 Dedek
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Fuj, namespaces _-(
kozzi avatar 5.12.2014 09:15 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
it would be expressed thus: ^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
kozzi avatar 5.12.2014 09:15 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí

to je odpoved na puvodni otazku

Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
5.12.2014 09:30 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Namespaces je systémovým řešením tvého problému. Také jsem se tomu dlouho bránil, ale dnes už vím, že když mám potřebu dvou- a víceslovního názvu třídy, je to vlastně skrytá potřeba použití namespaces.

Nejspíš ti vadí mandatorní položky typu "vendor namespace". Tak je nepoužívej. Časem zjistíš, že to zas taková pakárna není, ale do té doby ti moc chybět nebudou.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
5.12.2014 13:32 Dedek
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Do toho nejdu, je to přímá cesta do pekla! :-D pak už nezbývá než i nadále používat jednoslové názvy adresářů :-( Jeden pitomý znak... A neexistuje v php nějaká set path který můžu 20x změnit během načítání scriptu a fnc autolader by k ní měl přístup?
Josef Kufner avatar 5.12.2014 14:01 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
PSR-4 je to co chceš. Je to už asi pátá verze autoloaderu a pojmenování tříd a je za tím mnoho tisíc člověko-let zkušeností.
Hello world ! Segmentation fault (core dumped)
6.12.2014 12:55 Dedek
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
PSR-4 ? Dyť je to samý namespaces :-(
Josef Kufner avatar 6.12.2014 15:18 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Ano. A až se v nich trochu rozkoukáš, uvidíš, že to je tak lepší.
Hello world ! Segmentation fault (core dumped)
7.12.2014 13:54 Dedek
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Tak se v tom hrabu, ale stejně dostanu chybu při zápisu
$std = new \cesta\k\me\male-tride\StdClass();
7.12.2014 22:09 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
StdClass se používá trochu jinak:
$std = new \StdClass();
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
8.12.2014 12:01 Dedek
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Tak že neexistuje žádný způsob jak načítat pomocí autoloaderu třídy z adresářů obsahující pomlčky ?
8.12.2014 12:17 narg
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Pomlčky určitě ne… Viz. http://php.net/manual/en/language.oop5.basic.php
8.12.2014 12:20 narg
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Edit: respektive existuje… Pokud si napíšete vlastní autoloader. A nějaký znak (jakýkoli validní v classname/namespace) převedete na -. Ale je to proti zvyklostem v PHP.
8.12.2014 13:12 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
To není pomlčka, ale spojovník. Obvykle je interpretován jako znaménko mínus, proto ho nemůžeš použít v názvu namespace. Můžeš však použít podtržítko a v autoloaderu ho transformovat na spojovník.

Doporučuji však se takovým znakům jednoduše vyhnout. Většinou bychom si měli vystačit se znaky anglické abecedy.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 8.12.2014 13:56 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Další možnost je, že autoloader proskenuje všechny adresáře s knihovnami a zapamatuje si, kde která je. Pak je jedno, jak se třída jmenuje i kde je. Ale není to moc praktické a používá se to jen na zastaralé knihovny, které nerespektují PSR-4 ani PSR-1.
Hello world ! Segmentation fault (core dumped)
kozzi avatar 8.12.2014 14:29 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí

JJ, nejak takto to ma nas stary projekt, jedina "vyhoda", je ze clovek muze presouvat tridy libovolne a nemusi se o nic moc starat. Samozrejme v pripade pouzivani lepsich IDE to uz neni problem ani s PSR-4 ci 1

Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
rADOn avatar 11.12.2014 14:51 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
A to se pak skenuje pri kazdym requestu nebo se to nejak kesuje?
"2^24 comments ought to be enough for anyone" -- CmdrTaco
kozzi avatar 11.12.2014 16:41 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí

Samozrejme je to na cachovane ve sdilene pameti, a v pripade ze se trida nenajde tak se spusti regenerovani.

Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
8.12.2014 14:46 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Když jeden znak fakt nestačí
Cimrman by ti asi také poradil: "Zkus to bez pomlček". Víceslovní názvy adresářů fakt nejsou potřebné.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.