Не могу заставить загрузчик zend загружать классы только под wamp - PullRequest
1 голос
/ 02 ноября 2009

Я пробую классы Zend Framework впервые. Сейчас я заинтересован в использовании отдельных классов. Читая документацию и некоторые другие вопросы здесь и в блогах, я попробовал три способа загрузки классов

    //attempt 1 - using zend loader
require_once('library\Zend\Loader.php');
Zend_Loader::loadClass('Zend_Date');

    //attempt 2 - direct class load
require_once('library\Zend\Date.php');

    // attempt 3 - auto load
set_include_path('D:\wamp\www\testPages\zend_test\library\Zend' . PATH_SEPARATOR . get_include_path());
require_once 'Loader\Autoloader.php';


$date = new Zend_Date();

// Output of the desired date
print $date->get();

Моя структура папок:

  • zend_test (папка)
    - testLoad.php (вышеупомянутый код живет там)
    - библиотека (папка)
    --- зенд (долер)
    ---- (Zend библиотеки и подпапки)

Я получаю следующие сообщения об ошибках: попытка 1

Warning: include(Zend\Date.php) [function.include]: failed to open stream: No such file or directory in D:\wamp\www\testPages\zend_test\library\Zend\Loader.php on line 83

Warning: include() [function.include]: Failed opening 'Zend\Date.php' for inclusion (include_path='.;C:\php5\pear') in D:\wamp\www\testPages\zend_test\library\Zend\Loader.php on line 83

Warning: require_once(Zend/Exception.php) [function.require-once]: failed to open stream: No such file or directory in D:\wamp\www\testPages\zend_test\library\Zend\Loader.php on line 87

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Exception.php' (include_path='.;C:\php5\pear') in D:\wamp\www\testPages\zend_test\library\Zend\Loader.php on line 87

attempt2

Warning: require_once(Zend/Date/DateObject.php) [function.require-once]: failed to open stream: No such file or directory in D:\wamp\www\testPages\zend_test\library\Zend\Date.php on line 25

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Date/DateObject.php' (include_path='.;C:\php5\pear') in D:\wamp\www\testPages\zend_test\library\Zend\Date.php on line 25

atempt3

Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in D:\wamp\www\testPages\zend_test\library\Zend\Loader\Autoloader.php on line 24
Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader.php' (include_path='D:\wamp\www\testPages\zend_test\library\Zend;.;C:\php5\pear') in D:\wamp\www\testPages\zend_test\library\Zend\Loader\Autoloader.php on line 24

Я что-то упустил?

Ответы [ 3 ]

3 голосов
/ 02 ноября 2009

Ваш путь включения должен выглядеть так:

include_path='D:\wamp\www\testPages\zend_test\library;.;C:\php5\pear

Когда он пытается загрузить класс Zend_Date, он ищет папку с именем Zend во включаемом пути с файлом с именем Date.php.

Все 3 ваших метода должны работать с этим исправленным, и я рекомендую попытку 3.

1 голос
/ 23 ноября 2009

использовал метод 3 и сделал это, чтобы заставить его работать:

set_include_path('D:/wamp/www/zendTest/library/');   
require_once 'Zend/Loader/Autoloader.php';

Zend_Loader::loadClass('Zend_Date'); //or whatever zen class
0 голосов
/ 09 февраля 2013

в php.ini удалить ";" перед строкой include_Path и перезапусти свой wamp!

...