Uncaught Nette\DI\ServiceCreationException

- ondrejd
 - Člen | 22
 
Zdravím všechny, měl bych jednu (pravděpodobně hloupější) otázku:
- zdědil jsem aplikaci, která byla původně psaná v Zend Frameworku, ovšem pak byla napsána nová administrace a ta je v Nette 2.4, a já Nette vůbec neznám
 - z vícero důvodů došlo k přesunu do složky admin2, kde mám bootstrap.php a původní odpovídající strukturu (presentery, modely atp.)
 
Aktuální stav konfiguračního souboru:
parameters:
    domain: '*'
    database:
        driver: 'mysql'
        host: 'localhost'
        user: '*'
        password: '*'
        dbname: '*'
        charset: 'UTF8'
        collation: 'utf8_czech_ci'
        options:
            lazy: yes
database:
    dsn: '%database.driver%:host=%database.host%;dbname=%database.dbname%'
    user: '%database.user%'
    password: '%database.password%'
    options:
        lazy: %database.options.lazy%
php:
    date.timezone: Europe/Prague
application:
    errorPresenter: Error
    mapping:
        *: App\*Module\Presenters\*Presenter
session:
    expiration: 1 days
    savePath: '%tempDir%/sessions'
    autoStart: TRUE
services:
    - admin2\model\UserManager
    - admin2\router\RouterFactory
    router: App\RouterFactory::createRouter
gettextTranslator:
    language: cs_CZ # default language
    files:
        front: %appDir%/lang
    # optional with defaults
    layout: horizontal # or: vertical
    height: 450
extensions:
    gettextTranslator: GettextTranslator\DI\Extension
Krom té změny v přesunu složky nedošlo ke změnám v jiných zdrojácích a já pořád dostávám tuto chybu:
Fatal error: Uncaught Nette\DI\ServiceCreationException: Class admin2\model\UserManager used in service '26_admin2_model_UserManager' not found. in /var/www/inpage/vendor/nette/di/src/DI/ContainerBuilder.php on line 550
Vím, že tam mám nějakou hloupost, ale jak se v Nette nevyznám, tak nevím jak to nastavit. Neporadil by mi někdo? Díky.

- Ondřej Kubíček
 - Člen | 494
 
v tom případě to nesmíš měnit v tom configu
to co tam je napsané je klasický php namespace, ne adresářová struktura
services:
    - admin\model\UserManager
    - admin\router\RouterFactory
				
- ondrejd
 - Člen | 22
 
Ondřej Kubíček napsal(a):
v tom případě to nesmíš měnit v tom configu
to co tam je napsané je klasický php namespace, ne adresářová strukturaservices: - admin\model\UserManager - admin\router\RouterFactory
No, vždyť to tam mám:
services:
    - admin2\model\UserManager
    - admin2\router\RouterFactory
    router: App\RouterFactory::createRouter
To admin2\model\UserManager i
admin2\model\RouterFactory jsou cesty správné.

- Ondřej Kubíček
 - Člen | 494
 
přečti si ještě jednou co jsem napsal a podívej se na můj přiklad :)
tím že měníš root složku nemusíš nic měnit v configu
předpokládám že v puvodním adresáři admin, máš namespace třeba toho
UserManager tento – admin\model\UserManager a to necháš
stejný, tys to přepsal na admin2
Editoval Ondřej Kubíček (14. 12. 2018 10:04)

- ondrejd
 - Člen | 22
 
Ondřej Kubíček napsal(a):
přečti si ještě jednou co jsem napsal a podívej se na můj přiklad :)
tím že měníš root složku nemusíš nic měnit v configu
předpokládám že v puvodním adresáři admin, máš namespace třeba toho UserManager tento –admin\model\UserManagera to necháš stejné, tys to přepsal naadmin2
já jsem vzal původní aplikaci, hodil to do adresáře admin2
a namespace jsem neměnil (stále je App), aktualizoval jsem si
composer aby v classmap byl adresář admin2 přiřazen předtím než je
načten bootstrap.php. Pokud dám do konfigurace jen to
s namespacema, tak mi to hlásí, že je nenajde. Když jsem tam měl ty cesty,
tak to pak házelo tu chybu zmíněnou v názvu diskuse. Nemohl by jsi mi,
prosím, naznačit konfiguraci pro toto, co jsem tady napsal? Díky.

- Ondřej Kubíček
 - Člen | 494
 
zkopíruj sem začátek té třídy UserManager, chci se podívat co tam
máš za namespace, protože v configu nebo v té třídě je blbě a pokud
ne, pokud ten namespace máš fakt admin2\model\UserManager, tak ti
tu třídu nenačetl autoload, ale pochybuju, že máš namespace začínající
admin2, když jsi psal ted něco o App