Перемещение index.php из корня приложения в Zend Frame Work

Я пытаюсь изменить путь index.php.

У меня есть структура Zend с загрузочным ремнем.

Итак, я создал новую папку с именем newapp, ее путь — это корневой путь, где лежит наш index.php.

Затем я скопировал index.php в newapp, чтобы загрузить приложение из каталога newapp.

Но проблема в том, что я не могу загрузить файл конфигурации из index.php, который я скопировал. Выдает ошибку, указанную ниже.

 Fatal error: Uncaught exception 'Zend_Config_Exception' with message 

'parse_ini_file(E:\xampp\htdocs\..../configs/application.ini) [<a href='function.parse-

ini-file'>function.parse-ini-file</a>]: failed to open stream: No such file or directory' 

in E:\xampp\htdocs\ZendFramework-1.12.0\library\Zend\Config\Ini.php:182

Обратите внимание на мою структуру папок

- trunk

        - index.php
        - application
            - bootstrap.php
            - configs
                - config.ini
        - newapp
            - index.php (copy of above)

Мой фактический index.php приведен ниже

<?php
    ini_set('memory_limit', '-1');
    set_time_limit(0);
    defined('BASE_PATH')|| define('BASE_PATH', realpath(dirname(__FILE__)));
    define('APPLICATION_PATH', BASE_PATH . '/application');

    set_include_path('../../library1.12.0/'. get_include_path());

    require_once 'Zend/Loader/Autoloader.php';
    $loader = Zend_Loader_Autoloader::getInstance();
    $loader->setFallbackAutoloader(true);

    defined('APPLICATION_ENV')|| define('APPLICATION_ENV',(getenv

('APPLICATION_ENV') ? getenv('APPLICATION_ENV'): 'staging_mysql'));


    $application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
    );
    $application->bootstrap();
    $application->run();

Что я должен изменить в index.php?

  • Я попытался изменить путь к файлу конфигурации как

    ПРИЛОЖЕНИЕ_ПУТЬ . '/../../configs/application.ini'

но не сработало - библиотека Zend доступна, потому что я установил для нее переменную пути из

настройки переменных окружения windows.

  • Я тоже пробовал это realpath(dirname(__FILE__))."/.."

Но приложение не загружается.


person Kiren S    schedule 17.05.2013    source источник


Ответы (2)


попробуйте добавить

set_include_path(
  APPLICATION_PATH.'/../library1.12.0'.PATH_SEPARATOR.
      APPLICATION_PATH.'/../library1.12.0/Zend'
);
person voodoo417    schedule 17.05.2013
comment
Я пытался, но: Предупреждение: require_once(Zend/Loader/Autoloader.php) [function.require-once]: не удалось открыть поток: - person Kiren S; 17.05.2013

defined('BASE_PATH') || define('BASE_PATH', realpath(dirname(__FILE__)));
define('APPLICATION_PATH', BASE_PATH . '/application');
set_include_path('../../library1.12.0/'. get_include_path());

Это должно быть в newapp/index.php строками ниже

defined('BASE_PATH')|| define('BASE_PATH', realpath(dirname(__FILE__)));
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', BASE_PATH . '/../../application');

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library1.12.0'),
    get_include_path()
)));

ПРИМЕЧАНИЕ: папка 'library1.12.0' должна находиться на уровне папки приложения, а папка Zend должна находиться внутри нее. Надеюсь, это поможет вам, я проверил его и его работу.

person rkj    schedule 18.05.2013