невозможно загрузить модели в Zend Framework

0

Я не могу загрузить модели в файл, который находится в папке приложения. моя структура zend похожа на эту

project

-- application

       --configs

       --controllers

       --models

       --views

      --cron_file.php

--libraray

--index.php
>
--htaccess

и в моем файле cron для загрузки моделей, которые мне даны как это

    define('APPLICATION_PATH', realpath(dirname(__FILE__)));
    set_include_path(APPLICATION_PATH . '/../library'.PATH_SEPARATOR .APPLICATION_PATH.'/models'.PATH_SEPARATOR.get_include_path());

       $mt= new Model_Modelname;
        $mt->functionname();

если я http://hostname/project/application/cron_file.php файл, подобный этому http://hostname/project/application/cron_file.php я получаю ошибку, подобную этой

Warning: include_once(Model\Modelname.php): failed to open stream: No such file or directory in C:\xampp\htdocs\project\library\Zend\Loader.php on line 83

Warning: include_once(): Failed opening 'Model\Modelaname.php' for inclusion (include_path='C:\xampp\htdocs\project\application/../library;C:\xampp\htdocs\project\application/models;.;C:\xampp\php\PEAR') in C:\xampp\htdocs\project\library\Zend\Loader.php on line 83

Fatal error: Class 'Model_Modelname' not found in C:\xampp\htdocs\project\application\cron_file.php on line 75

Пожалуйста, помогите мне решить эту проблему. благодаря

  • 0
    Попробуйте загрузить его вручную вместо Zend_Loader .
  • 0
    я удалил zend_loader и попробовал. Невозможно загрузить модель
Показать ещё 2 комментария
Теги:
zend-framework

1 ответ

0

Как вы, вероятно, заметили, файлы в папке приложения не соответствуют нормальным стандартам автозагрузки (например, папки представляют собой models и forms, но классы в них имеют model и form имен). Вам необходимо добавить загрузчик ресурсов (Zend_Loader_Autoloader_Resource) с этими правилами для автозагрузчика. Поскольку мы хотим использовать стандартные правила для приложения Zend, мы можем использовать ресурс bulid-in - Zend_Application_Module_Autoloader.

define('APPLICATION_PATH', realpath(dirname(__FILE__))); //application folder path
require_once 'Zend/Loader/Autoloader.php'; //you might need to add Zend library to php path
$al = Zend_Loader_Autoloader::getInstance();
$al->registerNamespace('Application');
$rl = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Application',
            'basePath'  => APPLICATION_PATH,
        ));

Теперь вы можете загружать классы, как всегда, в Zend - $mt= new Application_Model_Modelname;

  • 0
    Я пытался так. я получаю сообщение об ошибке Warning: require_once(Zend/Loader/Autoloader.php): failed to open stream: No such file or directory in C:\xampp\htdocs\project\application\cron_file.php on line 76 Fatal error: require_once(): Failed opening required 'Zend/Loader/Autoloader.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\xxxx .
  • 0
    Надеюсь, вы добавили Zend Framework для включения пути? $path = '/path/to/zendfrmework/library'; set_include_path(get_include_path() . PATH_SEPARATOR . $path);
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню