У меня есть проект Zend со следующей структурой каталогов:
/myApp
/application
Bootstrap.php
/configs
application.ini
/layouts
/modules
/default
/controllers
MessageController.php
ErrorController.php
IndexController.php
/models
/DbTable
Message.php
Message.php
MessageMapper.php
/views
Bootstrap.php
/login
/controllers
/forms
/library/login
/models
/plugins
/views
Bootstrap.php
/data/db
/library/zend
/public
http://localhost/ - работает нормально, но я не могу заставить работать модуль входа и сообщение внутри модуля по умолчанию. Я получаю следующую ошибку:
Неустранимая ошибка: класс Application_Module_Default_Model_MessageMapper не найден в /Library/WebServer/Documents/myApp/application/modules/default/controllers/MessageController.php в строке 14.
Я уверен, что я не инициализирую то, что мне нужно. Вот как выглядит мой код..
приложение.ini
autoloaderNamespaces[] ="Message_"
autoloaderNamespaces[] ="Login_"
autoloadernamespaces.0 = "Zend_"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.moduleControllerDirectoryName = "controllers"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultActionName = "index"
resources.frontController.params.displayExceptions = 0
resources.frontController.defaultModule = "default"
resources.frontController.params.prefixDefaultModule = "1"
resources.frontController.plugins[] = "Login_Plugin_SecurityCheck"
resources.modules = ""
/приложение/bootstrap.php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initDoctype()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('HTML5');
}
}
/public/index.php
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
require_once 'Zend/Application.php';
require_once('Zend/Loader/Autoloader.php');
$autoloader = Zend_Loader_Autoloader::getInstance();
/модуль/по умолчанию/контроллеры/MessageController.php
$message = new Application_Module_Default_Model_MessageMapper();
$this->view->entries = $message->fetchAll();
Дайте мне знать, если какие-либо подробности помогут. Любая помощь приветствуется.
MessageMapper.php
? - person ChrisA   schedule 01.09.2011class Default_Model_MessageMapper
В настоящее время он застревает в этой строке кода, которая находится в функции для получения всех сообщений из базы данных:$entry = new Application_Model_Message();
Я пробовал другие комбинации, такие какApplication_Module_Default_Model_Message();
Все еще не в восторге, но комментирование этих строк приводит к загрузке страницы , так почти там! - person   schedule 01.09.2011