postanowiłem przerobić jeden z moich projektów na standardy PSR-0, moduły i prawie wszystko działa. mam problem ze ścieżką klasy gdy wywołuję ją poprzez ajax-a,
ale po kolei....
mam następującą strukturę katalogów (nazwy katalogów i klas przykładowe):
.
- lib (katalog)
-- vendor (katalog)
--- module (katalog)
--- js (katalog)
---- jq.js (plik z definicją funkcji jquery)
---- php (katalog)
------ act.php (plik wywoływany z jquery)
---- Class.php (definicja mojej klasy)
- index.php
żeby było bardziej czytelne podam ścieżki do plików:
lib\vendor\module\js\jq.js
lib\vendor\module\php\act.php
lib\vendor\module\Class.php
index.php
plik index.php
w pliku dodany automatyczny autoloader następnie zarejestrowany - działa ok
... use \lib\vendor\module\Class; .... $cl = new Class();
w tym pliku wszystkie wywołania metod klasy Class działają i nie ma z tym najmniejszego problemu.
plik Class.php
namespace lib\vendor\module; /*definicja klasy jest nieistotna tutaj */
plik act.php
use lib\vendor\Class; $cl = new Class();
plik jq.js
wywołuję tutaj metodę
$.post('lib\vendor\module\act.php', {}, function(data){
alert(data);
})
jeśli używam klasy Class z poziomu php jest ok,
po użyciu z poziomu ajax nie zna klasy Class - Fatal error: Class 'Class' not found in ....
Class nie jest moją znazwą klasy to jest tylko przykładowa nazwa. ma ktoś pomysł jak rozwiązać ten problem? bo mi pomysły pomału się kończą, a nie chciał bym używać tutaj pełnej ścieżki dostępu do klasy (problemy przenoszeniem na inną lokalizację)