Autor Zpráva
qteck
Profil
AHoj,

chtělbychsiautoloadnout třídu: /control/default.php s namespace control. Přidal jsem do composer.json tyhlee řádky:

        "autoload": {
            "psr-0": {
                "Control":        "control/"
            }
        }

autoloadnul v indexu a pak tu třídu volám:

$db = new Control\DB;

Ale nešlape mi to. Pravděpodobně to bude blbě napsaný blbě v té definici v autoload. Něják tomu nerozumím. Našel jsem nějaké rozdílymezi PSR 0 a PSR 4. Byl bych vděčný kdyby mi s tím někdo pomohl.

Díky moc.
Jan Tvrdík
Profil
qteck:
Tvůj kód nerespektuje ani PSR-0 ani PSR-4 standard (nastuduj si je ve svém volném čase), takže musíš použít obecný classmap autoloader:

"autoload": {
    "classmap": ["control/"]
}
qteck
Profil
Díky, takhle mi to jede:-). Jak to víš že nerespektuje? Mrknu na to.

Teď se mi vyskytla drobná chybka po definovaní namespace. Namespace Control;
$db = new Control\DB; zavolám to. a vyhodí chybu že vytvářím instanci PDO vnamespace Control\PDO no atatamsamozřejmě není.

Tak tak jsem tam přidal lomítko
new \PDO domnívaje se že to bude šlapat ale: Class 'Control\PDO' not found

Hloupá otázka, každopádně jsem tomuhle problému ještě nečelil :-)))

Díky.


ou, takjsem měl za to že jde o problém namespace. Ono to ale jen nemuže tu třídu DB najít.

control/default.php -> class DB {}

composer.json

        "autoload": {
                "classmap": ["control/"]
        }
- potom composer dump-autoload

index.php

require_once "vendor/autoload.php"

$db = new DB;

a výsledek : class DB nenalezena.


teď mě ještě napadlo, jesli on to nehledá ve vendor?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: