Objasnění chyby v php

Petr

Objasnění chyby v php
« kdy: 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


Re:Objasnění chyby v php
« Odpověď #1 kdy: 16. 03. 2015, 23:37:52 »
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;) .

Petr

Re:Objasnění chyby v php
« Odpověď #2 kdy: 16. 03. 2015, 23:50:05 »
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.

j

Re:Objasnění chyby v php
« Odpověď #3 kdy: 17. 03. 2015, 00:08:04 »
Mozna bys nejlip udelal, kdybys napastoval prislusnej kus kodu. To vis, kristal je nedostatkovej, a obycejny sklo nic moc.

Sten

Re:Objasnění chyby v php
« Odpověď #4 kdy: 17. 03. 2015, 00:43:21 »
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?


Petr

Re:Objasnění chyby v php
« Odpověď #5 kdy: 17. 03. 2015, 07:45:03 »
Používám v autoloaderu require ...

Hmmm

Re:Objasnění chyby v php
« Odpověď #6 kdy: 17. 03. 2015, 10:47:12 »
Používám v autoloaderu require ...
Tak moze byt chyba tam. Pouzite require_once.

Kit

Re:Objasnění chyby v php
« Odpověď #7 kdy: 17. 03. 2015, 11:16:37 »
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.

3ugeene

Re:Objasnění chyby v php
« Odpověď #8 kdy: 17. 03. 2015, 11:34:46 »
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 {
}

3ugeene

Re:Objasnění chyby v php
« Odpověď #9 kdy: 17. 03. 2015, 11:36:26 »
v prvnim pripade ma byt misto section samozrejme Test



tohle forum je fakt nakikot ohledne editaci

Hmmm

Re:Objasnění chyby v php
« Odpověď #10 kdy: 17. 03. 2015, 12:16:21 »
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.