Ako includovať php súbory tretích strán?

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

Ahojte, zrovna som sa vrátil po vyše roku k práci s Nette. Od 0.96ky sa toho naozaj dosť zmenilo.

Moja otázka je nasledovná: Mám php súbor, ktorý potrebujem includovať do svojho Nette projektu. Po prečítaní dokumentácie o auto loadingu tried som teda hodil subor xxx.php do LIBS. Naivne som veril, že si ho RobotLoader nájde, ale nakoniec to skončilo fiaskom a pridaním natvrdo cez

require_once LIBS_DIR.‚\xxx.php‘;

do HomePagePresentera. Toto samozrejme funguje, ale nepáči sa mi to. Poradíte ako to nejako zautomatizovať?? Vopred veľká vďaka.

drahos
Člen | 18
+
0
-

RobotLoader hledá tam, kde mu řekneš. Nevím, jak to máš nastavené v bootstrapu. Můžeš buďto nechat RobotLoadera hledat v libs adresáří a nebo líp použít composer pokud to jde.

Jinak přidat adresář:

$configurator->createRobotLoader()
	->addDirectory(APP_DIR)
	->addDirectory(LIBS_DIR)

Editoval drahos (29. 11. 2012 22:06)

Arynev
Člen | 33
+
0
-

Neautoloaduje nette pouze třídy?

j-cup
Člen | 21
+
0
-

Arynev napsal(a):

Neautoloaduje nette pouze třídy?

Vidíš, toto je dobrý postreh. Ja vlastne potrebujem použiť funkciu z daného súboru a nie classu. Toto mi predtým nenapadlo, ale bude to určite dôvod prečo mi hádzalo chyby. Vďaka.

Nox
Člen | 378
+
0
-

Arynev napsal(a):

Neautoloaduje nette pouze třídy?

To není záležitost Nette, ale PHP. Existuje issue, aby bylo možné v PHP autoloadovat i funkce, ale myslim že to bylo zamítnuto

Editoval Nox (30. 11. 2012 10:42)

Tomáš Kolinger
Člen | 136
+
0
-

Umístění do presenteru je nevhodné. Ideální místo je podle mě bootstrap.php.

Zautoamtizovat to očividně nejde, leda napsat vlastní/jiný/další loader.

mildabre
Člen | 62
+
0
-

j-cup napsal(a):

Arynev napsal(a):

Neautoloaduje nette pouze třídy?

Vidíš, toto je dobrý postreh. Ja vlastne potrebujem použiť funkciu z daného súboru a nie classu. Toto mi predtým nenapadlo, ale bude to určite dôvod prečo mi hádzalo chyby. Vďaka.

Tak si místo funkce napiš statickou metodu nějaké třídy a bude se Ti to myslím autoloadovat. Nette je stoprocentní objektovina, i když funkce fungují také, piš třídy, je to čistší a modernější.