Я использую Zend 1.8.4 и настраиваю простой тест формы. Моя форма класса расположена в «./application/forms/SectorSearch.php» и имя классаZend Forms Module Include Paths
<?php
class Form_SectorSearch extends Zend_Form
{...}
Мой контроллер создает новую форму в методе Init()
<?php
class SectorController extends Zend_Controller_Action
{
function init()
{
$this->initView();
$form = new Form_SectorSearch(array(
'method' => '/public/sector/search',
'action' => 'post'));
$this->view->form = $form;
}
..
}
Но я 'm получение этой ошибки
Warning: Zend_Loader_Autoloader_Resource::include(/home/poconnell/projects/bhaa/application/forms/SectorSearch.php) [zend-loader-autoloader-resource.include]: failed to open stream: No such file or directory in /home/poconnell/projects/bhaa/library/Zend/Loader/Autoloader/Resource.php on line 178
Warning: Zend_Loader_Autoloader_Resource::include() [function.include]: Failed opening '/home/poconnell/projects/bhaa/application/forms/SectorSearch.php' for inclusion (include_path='/home/poconnell/projects/bhaa/library:/home/poconnell/projects/bhaa/application:.:/usr/share/php:/usr/share/pear') in /home/poconnell/projects/bhaa/library/Zend/Loader/Autoloader/Resource.php on line 178
Fatal error: Class 'Form_SectorSearch' not found in /home/poconnell/projects/bhaa/application/controllers/SectorController.php on line 19
Я на 100% уверен, что класс включен в путь включения.
Я думаю, что это вопрос bootstraping, и это, как я загружаю модуль по умолчанию
protected function _initAutoload()
{
//Zend_Loader_Autoloader_Resource - Zend_Application_Module_Autoloader
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH
));
return $moduleLoader;
}
Я даже попытался использовать эту модель, в соответствии с рекомендациями Autloading modular forms & models in Zend Framework 1.8
protected function _initAutoload()
{
//Zend_Loader_Autoloader_Resource - Zend_Application_Module_Autoloader
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH,
'resourceTypes' => array (
'form' => array(
'path' => 'forms',
'namespace' => 'Form'))
);
return $moduleLoader;
}
, но нет радость. есть идеи?
Позаботьтесь о том, чтобы имена файлов находились в UperCase по мере их включения. Это обычная проблема при переключении с win на linux. – powtac
Вы на 100% уверены, что файл имеет правильные разрешения? – PatrikAkerstrand
poconnell @ литейное производство: ~/projects/bhaa/application/forms $ ls -al SectorSearch.php -rw-r-r-- 1 poconnell poconnell 561 2009-10-15 14:41 SectorSearch.php – emeraldjava