Autor Zpráva
Keilew
Profil
Po delším trápení jsem se rozhodl rozpracovanou aplikaci s univerzálním jmenným prostorem přemigrovat na aplikaci plně využívající jmenné prostory, jak je nabízí PHP 5.3 (typický problém střetu tříd se jménem Controller od různých aplikačních modulů apod.). Narazil jsem na otázky, ke kterým bych rád slyšel odpověď, má-li někdo zkušenost.

- zacházím s "namespace" jako u Javy s "package" a s "use" jako s "import". Nezabije mi rychlostně aplikaci, když budu mít v každé třídě pod sebou 20 řádků definic "use" (zvyk z Javy - lepší je importovat jmenovitě tři třídy, než přes hvězdičku zbytečně celý balík)? Netuším, jak to PHP vevnitř zpracovává a jak se k tomu staví...

- funkce __autoload() je jen globání funkce, nelze ji nacpat do třídy? A z hlediska rychlosti, co je lepší, jeden globální autoload nebo v každé třídě 20 řádků includů?

Předem díky za tipy.
Koudis
Profil
k __autoload() .. pokud máte třídu která je namespace __autoload se vám sice načte ale nebude fungovat globálně (mimo nemaspace) ... když to nebude v namespace (ta třída) fungovalo mi to normálně :) ...
Jan Tvrdík
Profil
Keilew:
1. V PHP žádný import s hvězdičkou není a 20 řádků s use bych neviděl jako problém.
2. Pro autoloading nemusíš používat pouze funkci __autoload, ale lze zaregistrovat libovolný callback.
3. Doporučuji přes require_once načítat všechny třídy, o kterých víš, že je budeš určitě potřebovat (např. třída, od které dědíš) + autoloading pro třídy, které můžeš potřebovat.
Keilew
Profil
Jan Tvrdík: Díky.

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: