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.

robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
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 {
}
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
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
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

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.