Я закончил свое первое веб-приложение в MVC Zend Framework, и все отлично работает на моем локальном хосте.
Поэтому я загружаю его на сервер, и возникает проблема с автозагрузкой моего класса.
Я получаю сообщение об ошибке, когда хочу создать объект из моего класса в indexcontroller:
$this->view->bottomCache = new Application_Model_Cache($this->cacheTime,'bottomCache');
И я получаю сообщение об ошибке:
Fatal error: Class 'Application_Model_Cache' not found in ........./IndexController.php on line 19
На моем локальном хосте я использую Zend Server CE, и там он работает.
Пожалуйста, не могли бы вы дать мне несколько советов, что я бы проверил, чтобы узнать, почему это не работает?
РЕШИТЬ:
первая буква имени класса должна быть заглавной, Cache.php
EDIT2:
Папка модели против модели
Как вы можете видеть в этом примере
// application/models/Guestbook.php
class Application_Model_Guestbook
{
EDIT1:
Я использовал учебник по http://framework.zend.com/manual/en/learning.quickstart.create-project.html,, поэтому я использовал файловую структуру, которая там есть.
quickstart
|-- application
| |-- Bootstrap.php
| |-- configs
| | `-- application.ini
| |-- controllers
| | |-- ErrorController.php
| | `-- IndexController.php
| |-- models
| | |-- cache.php
| | `-- DbTable
| | `-- Downloaded.php
| `-- views
| |-- helpers
| `-- scripts
| |-- error
| | `-- error.phtml
| `-- index
| `-- index.phtml
|-- library
|-- public
| |-- .htaccess
| `-- index.php
Bootstrap.php
В моем багажнике у меня есть:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoload() {
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Application_',
'basePath' => dirname(__FILE__),
));;
$autoloader->addResourceType('model', 'model/', 'Model');
return $autoloader;
}
protected function _initDoctype()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('XHTML1_TRANSITIONAL');
}
}
application.ini
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
phpSettings.date.timezone = "Europe/London"
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = *****
resources.db.params.password = ****
resources.db.params.dbname = *****
resources.db.params.charset = "utf8"
resources.db.params.names = "utf8"
resources.view.doctype = "XHTML1_TRANSITIONAL"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1