Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF]Problem z dostępem do klas w public
Forum PHP.pl > Forum > PHP > Frameworki
Wolfie
Witam

Postawiłem sobie ZendFramework 1.10, za pomocą konsoli zf stworzyłem nowy projekt,

W pliku public napisałem sobie prosty skrypcik symulujący bazę danych winksmiley.jpg

  1. require_once 'Zend/Loader.php';
  2. Zend_Loader::registerAutoload();
  3.  
  4.  
  5. function getData() {
  6.  
  7. $rows = array('0' => array('id' => '1', 'name' => 'Walden', 'author' => 'H.D. Thoreau', 'descr' => '"Walden" is the classic account of two years spent by Henry David Thoreau living at Walden Pond near Concord, Massachusetts.', 'type' => 'book'),
  8. '1' => array('id' => '2', 'name' => 'Barry Lyndon', 'author' => 'Stanley Kubrick', 'descr' => 'Thackerays tale of a roguishly charming 18th century Englishman, card shark and con-man whose good fortune and luck finally run out.', 'type' => 'dvd'),
  9. '2' => array('id' => '3', 'name' => 'White Blood Cells', 'author' => 'The White Stripes', 'descr' => 'The much anticipated third album by Detroits critically acclaimed brother and sister duo.', 'type' => 'cd'));
  10.  
  11. $json = Zend_Json::encode($rows);
  12. echo $json;
  13. }
  14.  
  15. switch ($_POST['method']) {
  16. case 'POST':
  17. getData();
  18. break;
  19. }


No i teraz sedno:

Zwróćcie uwagę na dwie pierwsze linijki skryptu.

Gdy odpalam skrypt dostaję komunikat :

Cytat
Zend_Loader::Zend_Loader::registerAutoload is deprecated


Gdy używam Zend_Loader_Autoloader::getInstance(); dostaję komunikat że klasa Zend_Loader_Autoloader nie istnieje

Druga sprawa, gdy skasuje obie linijki to dostaję komunikat ze klasa Zend_Json nie istnieje

No i teraz pytanie:

Dlaczego w publicu nie mam dostępu do klas biblioteki ? chyba nie powinno byc w tym miejscu sytuacji ze musze inkludowac library za pomocą require_once bo całą robote powinien odwalac application.ini ?

No i dlaczego jak juz mam tę bibliotekę to nei ma klasy Zend_Loader_Autoloader mimo ze jest komunikat zeby jej uzyć?
LBO
Cytat(Wolfie @ 13.06.2010, 17:46:58 ) *
Gdy używam Zend_Loader_Autoloader::getInstance(); dostaję komunikat że klasa Zend_Loader_Autoloader nie istnieje


A zainkludowałeś ją?
skowron-line
A napewno masz dobrą ścieżkę do pliku questionmark.gif?
Wolfie
Cytat(LBO @ 13.06.2010, 19:59:26 ) *
A zainkludowałeś ją?



Zainkludowałem poprzez application.ini, wiec rozumiem że ta biblioteka powinna być dostępna, ale po pewnych przemyśleniach doszedłem do wniosku że błąd może być gdzie inidziej, a mianowicie tu, że wszystko w zendzie idzie przez index.php a plik data.php który znajduje się w pierwszym poście jest jakby oderwany od całości i wisi sobie poprostu w katalogu public, dlatego tez nie ma dostępu do klas Zenda.

Dobrze rozumiuję ?
nospor
Cytat
Gdy używam Zend_Loader_Autoloader::getInstance(); dostaję komunikat że klasa Zend_Loader_Autoloader nie istnieje

No bo robisz require
require_once 'Zend/Loader.php';
zas twoja klasa znajduje sie w:
require_once 'Zend/Loader/Autoloader.php';
smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.