Diskuze: Autoloader problém
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 22 zpráv z 22.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
__autoload() se obvykle dává jen jednou do celé aplikace. Dávám ho hned na 2. řádek v index.php
Trochu se zamysli nad názvem adresáře "classes". Není sémantický.
já to tam mám právě jen jednou.. a z toho co jsem pochopil z toho erroru
to bere že na tom jednom řádku je to dvakrát
mám ho na začátku kódu který je includovaný nad hlavičkou v každé stránce.
Zkus to posunout o jeden řádek, třeba je to jen bug.
To bude ono, dej to do indexu, ukazuje se ti to víckrát.
Tak ho asi includuješ 2×.
Includovat __autoinclude() není zrovna nejlepší nápad.
to je na dlouhý vysvětlování...
ale už jsem to pořešil a funguje to, takže dobrý
Myslím si, že na tom není co vysvětlovat. Také jsem to tak dělal, než jsem přešel na objekty.
O to se právě snažím
jenže asi bude chvilku trvat než si na objekty v PHP zvyknu
Na dobré se zvyká rychle. Časem se naučíš dělat technikou MVC i uvnitř jedné třídy.
To, co jsem napsal tady:
http://www.itnetwork.cz/dev-lighter/176
je téměř vše, co mám v index.php. Zbytek je v objektech.
V indexu mám navíc už jen session_start() a aktivaci modelu.
No.. třeba se k takovému kódu taky někdy dopracuju...
Výhodou tohoto postupu je, že je to velmi rychlé. Includují se jen ty třídy, které jsou pro vykonání úlohy potřebné. Ostatní v klidu spí. Takže aplikace má třeba 10000 řádek, ale když reaguje na klientovo kliknutí, proběhe jich třeba jen 100-200 a zbytek se vůbec nenatahuje.
jasně, akorát tomu tvému kódu jaksi moc nerozumím..ale to snad časem přijde..
Asi bych ho mohl okomentovat
Je to v podstatě router, který spojí název objektu s názvem operace. Vznikne tak název třídy, ze které se vytvoří objekt, kterému se předá aktivovaný model.
Ještě to chce trochu vypilovat, protože podtržítková notace není to
pravé. Variantou by mohlo být, kdyby název adresáře byl vždy roven názvu
namespace. Pak by se do $className dal symbol \
místo podtržítka
a bylo by to.
Už mi to začíná trochu zapadat každopádně tohle je na mně zatím ještě high-level.Musím
začít na jednodušších věcech.
Je to sice high-level, ale při té jednoduchosti se to dá používat všude.
Proti tvému řešení je rozdíl v tom, že ty includuješ společné vlastnosti, ale já naopak startuji se společnými vlastnostmi a includuji jen to, co k nim potřebuji navíc. Pokud třeba zjistím, že požadavek je chybný, vůbec nemusím natahovat výstupní šablonu a rovnou klientovi pošlu chybový stav s přesměrováním.
Jasně já tomu rozumím
principielně, ale abych se naučil to technicky vyřešit tak na to musím jít
od základů
Zobrazeno 22 zpráv z 22.