vlastní třída, loader ji nenajde

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
batko
Člen | 219
+
0
-

Ahoj,

ve složce vendor jsem si přidal vlastní třídu.

Zapsal i do configu

Foo
class: Foo

a laděnka mi píše Class FOO used in service ‚Batko‘ has not been found or is not instantiable

té hlášce rozumím, ale dříve stačilo nahrát třídu do libs a už to jelo…

vvoody
Člen | 910
+
0
-

Ulož ju pod vendor/others/

enumag
Člen | 2118
+
0
-

Složka vendor/others/ je jeden velký nesmysl. Dej to normálně do libs a v bootstrapu změň cestu pro RobotLoader.

batko
Člen | 219
+
0
-

enumag napsal(a):

Složka vendor/others/ je jeden velký nesmysl. Dej to normálně do libs a v bootstrapu změň cestu pro RobotLoader.

Přesně jak pravíš :-) děkuji moc

enumag
Člen | 2118
+
0
-

Anebo ještě líp zahoď RobotLoader a použij PSR-0 nebo PSR-4 autoloading z composeru. :-P

Šaman
Člen | 2666
+
0
-

Proč? Můžeš to rozvést?
A propo na tomto (Nette!) fóru mi nepřipadá vhodné navrhovat nováčkům, které mate i taková věc, jako přesun /libs do adresáře composeru, aby nepoužívali nástroj frameworku, ale nástroj třetí strany. Nette na composeru není nijak závislé, takže spousta lidí pracuje s Nette bez něho.

batko
Člen | 219
+
0
-

Klidně o rozveď. Já Composer používám a v pohodě, jen jsem zapomněl, že se ty složky nastavují v bootstrapu. Již mi vše jede a funguje jak má. Ale o PSR-0 nebo PSR-4 bych se klidně rád něco dozvěděl :-) …

enumag
Člen | 2118
+
0
-

@Šaman: Rád rozvedu. RobotLoaderu jsem se zbavil ze tří důvodů:

  1. Je mi mírně proti srsti používat několik různých způsobů autoloadingu. Všechny knihovny včetně vlastních instaluji přes composer a jejich autoloading si řeší composer. Může tedy stejně dobře loadovat i samotnou aplikaci.
  2. RobotLoader se čas od času při vývoji zasekne, odmítá nějakou třídu načíst a je nutné smazat cache. Což může být (obzvlášť pro nováčky!) ještě více matoucí.
  3. PSR-0 či PSR-4 mi nedovolí překlepy v názvech souborů. RobotLoaderu jsou ale názvy souborů ukradené takže mi vesele loaduje i třídy umístěné v chybně pojmenovaných souborech.

Pokud někoho z nováčků matu tak se omlouvám. RobotLoader není špatná věc, ale dnes osobně již nevidím důvod jej používat. Pokud však nováček ještě nezná composer, je RobotLoader jasná volba.

Ohledně PSR-0 a PSR-4 doporučuji dokumentaci composeru.

Editoval enumag (17. 1. 2014 21:46)

David Grudl
Nette Core | 8233
+
0
-

Jelikož sandbox, příklady, quickstart a dokumentace je postavená na RobotLoaderu, není fakt dobrý nápad radit, aby si jej někdo vypnul.