Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Petr 16. 03. 2015, 23:06:40
-
Zdravím, může mi prosím někdo objasni tuto chybu ? Používám namespace a use. Nevím co přesně už existuje.
Fatal error: Cannot declare class ctrl\Home because the name is already in use in /var/www...
Ví prosím někdo? Dík
-
No tak hláška ti píše, že nemůžeš znovu deklarovat (vytvářet) třídu ctrl\Home, která již existuje. Takže buď použiješ stejný NS (use ctrl;) a dáš třídě jiný název nebo si tu třídu vytvoříš v jiném NS ( namespace novyNS;) .
-
Díky za pomoc, jenže problém je v tom, že žádná taková třída neexistuje, respektivně existuje stejný název třídy ale v jiném namespace a use je taky jiný. Proto to nechápu.
-
Mozna bys nejlip udelal, kdybys napastoval prislusnej kus kodu. To vis, kristal je nedostatkovej, a obycejny sklo nic moc.
-
Díky za pomoc, jenže problém je v tom, že žádná taková třída neexistuje, respektivně existuje stejný název třídy ale v jiném namespace a use je taky jiný. Proto to nechápu.
PHP si ale myslí opak. Nepoužíváte náhodou include místo include_once, resp. require místo require_once, takže se ten PHP skript s danou třídou někde includuje víckrát?
-
Používám v autoloaderu require ...
-
Používám v autoloaderu require ...
Tak moze byt chyba tam. Pouzite require_once.
-
Používám v autoloaderu require ...
Tak moze byt chyba tam. Pouzite require_once.
V autoloaderu se require_once nepoužívá. Není k tomu důvod.
-
je dost mozny, ze tam pouzivas nejakou namespace a zaroven se tu samou v tom jednom souboru snazis dedit:
namespace Foo;
use \Bar\Test;
class Test
extends \Bar\Section {
}
pak by to melo byt takhle:
namespace Foo;
class Section
extends \Bar\Test {
}
-
v prvnim pripade ma byt misto section samozrejme Test
tohle forum je fakt nakikot ohledne editaci
-
Používám v autoloaderu require ...
Tak moze byt chyba tam. Pouzite require_once.
V autoloaderu se require_once nepoužívá. Není k tomu důvod.
V dobrom autoloaderi sa to nepouziva. Nie kazdy autoloader je dobry.