Перемещение index.php из корня приложения в работе Zend Frame
Я пытаюсь изменить путь 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?
Я попытался изменить путь к файлу конфигурации как
APPLICATION_PATH . '/../../Configs/application.ini'
но не работает - библиотека Zend доступна, потому что я установил переменную пути к ней из
окружающая среда переменные настройки окон.
- Я попробовал это также
realpath(dirname(__FILE__))."/.."
Но приложение не загружено.
2 ответа
Попробуйте добавить
set_include_path(
APPLICATION_PATH.'/../library1.12.0'.PATH_SEPARATOR.
APPLICATION_PATH.'/../library1.12.0/Zend'
);
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 должна быть внутри нее. Надеюсь, это поможет вам, я проверил его и его работу.