Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Warning: require_once(IndexController.php)
Forum PHP.pl > Forum > PHP > Frameworki
phpion
Witam,
muszę napisać pewną aplikację w ZF ale już na starcie mam pewien problem.

Tak wygląda mój index.php:
  1. <?php
  2. // Autoload function
  3. require_once('./__autoload.php');
  4.  
  5. // Set include path for autoload function
  6. set_include_path('/home/phpion/public_html/nanana/libraries:'.get_include_path());
  7.  
  8. // Connect to database...
  9. $db = Zend_Db::factory('Pdo_Mysql', array(
  10. 'host'  => 'localhost',
  11. 'username' => 'root',
  12. 'password' => '',
  13. 'dbname'  => 'nanana'
  14. ));
  15.  
  16. // ...and set it as a default database adapter
  17. Zend_Db_Table_Abstract::setDefaultAdapter($db);
  18.  
  19. // Controllers array
  20. $controllers = array(
  21. 'frontend' => '/home/phpion/public_html/nanana/applications/frontend/controllers',
  22. //'backend' => '/home/phpion/public_html/nanana/applications/backend/controllers'
  23. );
  24.  
  25. // Set & run the front controller
  26. $frontController = Zend_Controller_Front::getInstance();
  27. $frontController->setControllerDirectory($controllers);
  28. $frontController->setDefaultModule('frontend');
  29.  
  30. $frontController->dispatch();
  31. ?>


Wywolanie w przeglądarce wywala:
Kod
Warning: require_once(IndexController.php): failed to open stream: No such file or directory in blablabla


Gdy dodam ścieżkę do kontrolerów do include_path wszystko śmiga:
  1. <?php
  2. // Set include path for autoload function
  3. set_include_path('/home/phpion/public_html/nanana/libraries:/home/phpion/public_html/nanana/applications/frontend/controllers:'.get_include_path());
  4. ?>


O ile dobrze pamiętam przy poprzednim kontakcie z ZF nie musiałem dodawać tej ścieżki. Gdzie robię błąd? O czym zapomniałem?

Pozdrawiam: pion
stloyd
A czy przypadkiem nie psujesz sobie sam w kodzie pliku __autoload.php ? (zgaduje tongue.gif)
Mój w skróceniu wygląda tak:
  1. <?php
  2.  
  3. ini_set('display_errors', true);
  4.  
  5. error_reporting(E_ALL|E_STRICT);
  6.  
  7. date_default_timezone_set('Europe/Warsaw');
  8.  
  9. set_include_path('.' . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/models/' . PATH_SEPARATOR . get_include_path());
  10.  
  11. $oRouter = new Zend_Controller_Router_Rewrite();
  12. $oFrontController = Zend_Controller_Front::getInstance();
  13. $oFrontController->throwExceptions(true)
  14.  ->setRouter($oRouter)
  15.  ->setControllerDirectory(array(
  16. 'default' => './application/default/controllers',
  17. 'admin' => './application/admin/controllers'
  18.  ))
  19.  ->dispatch();
  20. ?>

i działa bez problemów smile.gif

Pozdrawiam (;
phpion
Dzięki za odpowiedź.

Od wczoraj tymczasowo __autoload.php wygląda w ten sposób:
  1. <?php
  2. function __autoload($class) {
  3. @include_once(str_replace('_', '/', $class).'.php');
  4. }
  5. ?>

Nie jest to zbyt sympatyczne rozwiązanie ale jak na razie działa.

Nie bardzo wiem o co chodzi Ci z tym psuciem w __autoload.php. Przy poprzednim projekcie z wykorzystaniem ZF na bank używałem autoload (bez @ i z require_once) i mój front controller wyglądał jak ten podany w pierwszym poście (tego jestem pewien na 90%). Nie wiem co pominąłem...

pion
nevt
może dodaj w __autoload() kropkę '.' na początku scieżki:
  1. <?php
  2. @include_once('./'.str_replace('_', '/', $class).'.php');
  3. ?>

wiele serwerów nie ma ustawionego bieżącego folderu na ścieżce wyszukiwania...
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.