Avatar
Jenkings
Redaktor
Avatar
Jenkings:

Ahoj.

Nechápu proč mi autoloader vyhazuje tuto chybu :

Cannot redeclare __autoload() (previously declared in /opt/lampp/htdocs/connect.php:16) in /opt/lampp/htdocs/connect.php on line 16

Přitom řádek 16 vypadá takhle

function __autoload($class_name) {include './classes/'.$class_name . '.class.php';}

Autoloader sice funguje, ale nechápu co způsobuje tu chybu

Odpovědět 19.8.2013 13:28
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na Jenkings
Inoue Yūki:

Zřejmě máš dvakrát autoload.

Nahoru Odpovědět 19.8.2013 13:34
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

__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ý.

Editováno 19.8.2013 13:40
Nahoru Odpovědět  +2 19.8.2013 13:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jenkings
Redaktor
Avatar
Odpovídá na Inoue Yūki
Jenkings:

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 :D

Nahoru Odpovědět 19.8.2013 13:49
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Jenkings
Redaktor
Avatar
Odpovídá na Kit
Jenkings:

mám ho na začátku kódu který je includovaný nad hlavičkou v každé stránce.

Nahoru Odpovědět 19.8.2013 13:51
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na Jenkings
Inoue Yūki:

Zkus to posunout o jeden řádek, třeba je to jen bug.

Nahoru Odpovědět 19.8.2013 13:52
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na Jenkings
Inoue Yūki:

To bude ono, dej to do indexu, ukazuje se ti to víckrát.

Nahoru Odpovědět 19.8.2013 13:53
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

Tak ho asi includuješ 2×.

Includovat __autoinclude() není zrovna nejlepší nápad.

Editováno 19.8.2013 13:54
Nahoru Odpovědět 19.8.2013 13:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

K čemu máš v každé stránce hlavičku?

Nahoru Odpovědět 19.8.2013 13:56
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jenkings
Redaktor
Avatar
Odpovídá na Kit
Jenkings:

to je na dlouhý vysvětlování...
ale už jsem to pořešil a funguje to, takže dobrý

Editováno 19.8.2013 14:01
Nahoru Odpovědět 19.8.2013 14:01
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

Myslím si, že na tom není co vysvětlovat. Také jsem to tak dělal, než jsem přešel na objekty.

Nahoru Odpovědět 19.8.2013 14:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jenkings
Redaktor
Avatar
Odpovídá na Kit
Jenkings:

O to se právě snažím ;)
jenže asi bude chvilku trvat než si na objekty v PHP zvyknu ;)

Nahoru Odpovědět 19.8.2013 14:18
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

Na dobré se zvyká rychle. Časem se naučíš dělat technikou MVC i uvnitř jedné třídy.

Nahoru Odpovědět  +1 19.8.2013 14:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

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.

Nahoru Odpovědět 19.8.2013 15:19
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jenkings
Redaktor
Avatar
Odpovídá na Kit
Jenkings:

No.. třeba se k takovému kódu taky někdy dopracuju...

Nahoru Odpovědět 19.8.2013 15:24
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

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.

Nahoru Odpovědět 19.8.2013 15:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jenkings
Redaktor
Avatar
Odpovídá na Kit
Jenkings:

jasně, akorát tomu tvému kódu jaksi moc nerozumím..ale to snad časem přijde..

Nahoru Odpovědět 19.8.2013 15:37
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

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.

Nahoru Odpovědět  +1 19.8.2013 15:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jenkings
Redaktor
Avatar
Odpovídá na Kit
Jenkings:

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.

Nahoru Odpovědět  +1 19.8.2013 15:53
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

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.

Nahoru Odpovědět 19.8.2013 16:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jenkings
Redaktor
Avatar
Odpovídá na Kit
Jenkings:

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ů ;)

Nahoru Odpovědět 19.8.2013 16:09
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jenkings
Kit:

Přidal jsem tam pár komentářů...

Nahoru Odpovědět  +1 19.8.2013 16:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 22 zpráv z 22.