Zend Autoloader не работает на реальном сайте - PullRequest
1 голос
/ 03 марта 2011

возникли проблемы! Я использую приложение Zend Quickstart в качестве основы для разработки (только что начал) У меня есть сервер PHP / MySQL на моей локальной машине (WinXP) Так что там все отлично работает. Но затем я попытался загрузить свой сайт на удаленный сервер. И вот что я получаю:

Fatal error: Class 'Default_Model_Post' not found in /home/mysite/application/controllers/IndexController.php on line 13

Строка 13:

$post = new Default_Model_Post();

Класс Default_Model_Post находится в application / models / post.php А на моем домашнем сервере это находит приложение zend!

Я проверил .htaccess - есть производственная линия SetEnv APPLICATION_ENV Вот мое 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"
autoloaderNamespaces[] = "Mysite_"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "mysite_ib"
resources.db.params.password = "my passwd here"
resources.db.params.dbname = "mysite_ib"
resources.db.isDefaultTableAdapter = true

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

Вот Bootstrap.php:

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Default',
            'basePath'  => dirname(__FILE__),
        ));
        //print_r( Zend_Loader_Autoloader::getAutoloaders()); exit; //tried to get some info here lol
        return $autoloader;
    }
}

Проверил все, что я могу себе представить! Он работает на моей машине разработчика, но на реальном сервере - нет! Поиск по всему Google, Zend документы и StackOverflow, но всегда не совсем моя проблема (или что исправления не помогают). Также классы в пространстве имен Mysite_ отлично работают даже на реальном сервере. Сайт на действующем сервере - это полная копия моего сайта разработчика (zip -> uploaded -> unzipped with zend lib и т. Д.) Скажите, пожалуйста, как это исправить или хотя бы как его отладить ... Я уверен, что есть какая-то чертова опция сервера, которую я забыл изменить. Ребята, я очень рассчитываю на вашу помощь :( Проект моей мечты в руинах. Извините за плохой английский.

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Каждая вещь выглядит нормально в вашем посте.Единственное, о чем я мог подумать, это убедиться, что имя папки «models» написано на вашем сервере строчными буквами.

Ваш компьютер для разработки - Windows, поэтому эти сведения могут не иметь значения, но онидело в Unix.

0 голосов
/ 03 марта 2011

Ваше имя файла должно быть Post.php (заглавная "P").

Как упоминал Атеф, файловые системы Windows нечувствительны к регистру, поэтому запрос application/models/Post.php будет обработан в вашем файле.

В системе * nix запрос не будет выполнен, поскольку файловая система чувствительна к регистру.

...