Nenacita mi php class, ktora je required v php skripte

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

do priecinku www som si pridal priecinok phpexport kde mam naprogramovany export suboru.
ak zavolam skript ucastnici.php ktory ma cestu www/phpexport/ucastnici.php

tak mi to vyhodi chybu ze Class DB not found
takto vyzera zaciatok ucastnici.php

<?php

require(__DIR__ ."/config.php");
require(__DIR__ ."/class.db.php");

$db = new DB(MYSQLI_DATABASE, MYSQLI_SERVER, MYSQLI_USERNAME, MYSQLI_PASSWORD);

// Teď načteme šablonu a získáme první list
require_once __DIR__ .'/PHPExcel.php';
require_once __DIR__ .'/PHPExcel/IOFactory.php';

?>

subor class.db.php obsahuje prave tuto classu :) pomozte

filipsedivy
Člen | 37
+
0
-

Tohle ale na Nette nevypadá.

figurluk
Člen | 61
+
0
-

filipsedivy napsal(a):

Tohle ale na Nette nevypadá.

to je klasicke php, ale projekt cely je robeny v nette
s tym ze ten subor volam v latte takto: href="{$basePath}/phpexport/ucastnici.php

Editoval figurluk (23. 5. 2015 18:07)

filipsedivy
Člen | 37
+
0
-

Ale hláška je jednoznačná, třída DB nenalezena.

figurluk
Člen | 61
+
0
-

filipsedivy napsal(a):

Ale hláška je jednoznačná, třída DB nenalezena.

no ved prave tomu nechapem preco…

filipsedivy
Člen | 37
+
0
-

No pokud to je ve jmenném prostoru, je nutné zavolat třídu s ním.

figurluk
Člen | 61
+
-2
-

filipsedivy napsal(a):

No pokud to je ve jmenném prostoru, je nutné zavolat třídu s ním.

jak to myslis ?? :) to je moj prvy projekt v nette

Namespace
Člen | 81
+
0
-

No mas tu cestu špatně. Pouzij robot-loader z Nette, nebo pouzij Nette :)

figurluk
Člen | 61
+
-2
-

Namespace napsal(a):

No mas tu cestu špatně. Pouzij robot-loader z Nette, nebo pouzij Nette :)

ako mam pouzit robot-loader ??? ten robot ma nacitat tu triedu ?

filipsedivy
Člen | 37
+
+3
-

Přečti si dokumentaci Auto-Loadingu

Editoval filipsedivy (23. 5. 2015 18:32)

figurluk
Člen | 61
+
0
-

filipsedivy napsal(a):

Přečti si dokumentaci Auto-Loadingu

urobil som to teda tak a hned mi v PHPExcel hlasi Ambiguous class…

filipsedivy
Člen | 37
+
0
-

Předpokládám že /temp si promazal?

figurluk
Člen | 61
+
0
-

filipsedivy napsal(a):

Předpokládám že /temp si promazal?

jo :)

Mysteria
Člen | 797
+
0
-

Co není na té hlášce jasné? Prostě se snažíš 2× includnout stejnou třídu což nejde. Takže jeden z těch jejich výskytů smaž (předpokládám, že to tam píše i konkrétní cesty, kde je definovaná).

figurluk
Člen | 61
+
0
-

Mysteria napsal(a):

Co není na té hlášce jasné? Prostě se snažíš 2× includnout stejnou třídu což nejde. Takže jeden z těch jejich výskytů smaž (předpokládám, že to tam píše i konkrétní cesty, kde je definovaná).

Ambiguous class PHPExcel_Autoloader resolution; defined in C:\Xampp\htdocs\progres\webman\app\libs\phpexport\PHPExcel\Autoloader.php and in C:\Xampp\htdocs\progres\webman\app/libs\phpexport\PHPExcel\Autoloader.php.

jedina jedna ta trieda je …

filipsedivy
Člen | 37
+
0
-

A nezůstalo ti ještě někde po tom co jsi měl nějaké tvé require/include.

figurluk
Člen | 61
+
0
-

filipsedivy napsal(a):

A nezůstalo ti ještě někde po tom co jsi měl nějaké tvé require/include.

jedine v tych konkretnych skriptoch

vytvoril som teda app/libs
do loaderu som dopisal nech nacita to libs nacitalo to uz dobre bez chyby

ako mam teraz urobit link v latte aby spustilo app/libs/phpexport/ucastnici.php ?

href=„phpexport/ucastnici.php?code={$row->code}“ target=„_blank“

Editoval figurluk (23. 5. 2015 19:09)

filipsedivy
Člen | 37
+
+1
-

Jdeš na to úplně nelogicky. Nette má své routy které ti routují adresy.
Tak že tam budeš mít určitě tu základní routu <presenter>/<action>[/<id>], tak že si musíš vytvořit Presenter s názvem UcastniciPresenter.php, kde si vytvoříš pod jmenným prostorem novou třídu, ve které následně budeš pracovat.

A pak jen daný presenter zavoláš z pohledu <a n:href="Ucastnici:export">Export</a>, při čemž ti routa zroutuje a vytvoří adresu a ty se o nic nemusíš starat.

Editoval filipsedivy (23. 5. 2015 19:20)

Unlink
Člen | 298
+
0
-

Otázka znie, že či skutočne potrebuješ spúšťať app/libs/phpexport/ucastnici.php

čo má urobiť ten skript? Nieje to možné napísať do presentera?

Ak by sa to nedalo, tak si sprav presenter ako popisuje @filipsedivy, v ktorom proste zavoláš ten skript app/libs/phpexport/ucastnici.php čo ti umožní jednoducho riešiť linky.

Editoval Unlink (23. 5. 2015 19:29)