Невозможно получить доступ к Zend_View_Helpers при передаче с WAMPP на сервер Linux - PullRequest
0 голосов
/ 15 февраля 2011

Я успешно запустил свой сайт на двух разных компьютерах с Windows, работающих под управлением Apache (WAMPP на сервере и XAMPP на моей локальной машине devbev).Я нахожусь в процессе переноса сайта на сервер Linux, но продолжаю получать следующую ошибку

Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'HeadIncludes' was not found in the registry; used paths: Zend_View_Helper_Navigation_: Zend/View/Helper/Navigation/ Zend_View_Helper_: Zend/View/Helper/:./views/helpers/:/home/sumpuzz1/public_html/test/application/views/helpers/' in /home/sumpuzz1/public_html/test/library/Zend/Loader/PluginLoader.php:412 Stack trace: #0 /home/sumpuzz1/public_html/test/library/Zend/View/Abstract.php(1174): Zend_Loader_PluginLoader->load('HeadIncludes') #1 /home/sumpuzz1/public_html/test/library/Zend/View/Abstract.php(610): Zend_View_Abstract->_getPlugin('helper', 'headIncludes') #2 /home/sumpuzz1/public_html/test/library/Zend/View/Abstract.php(336): Zend_View_Abstract->getHelper('headIncludes') #3 /home/sumpuzz1/public_html/test/application/layouts/layout.phtml(23): Zend_View_Abstract->__call('headIncludes', Array) #4 /home/sumpuzz1/public_html/test/application/layouts/layout.phtml(23): Zend_View->headIncludes('css', 'full') #5 /home/sumpuzz1 in /home/sumpuzz1/public_html/test/library/Zend/Loader/PluginLoader.php on line 412

Я сузил это до того, что что-то не так с папкой / путем, как будто я пытаюсьи вызвать любого из моих пользовательских помощников, я получаю ту же проблему.

Вот мой файл конфигурации

[testing]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
autoloaderNamespaces[] = "SPZ_"
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.dbname = ***********
resources.db.params.username = *************
resources.db.params.password = **********

Bootstrap

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload()
    {
        $moduleLoader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '', 
            'basePath'  => APPLICATION_PATH)
        );
    }

    protected function _initViewHelpers()
    {
        $this->bootstrap('layout');
        $layout = $this->getResource('layout');
        $view = $layout->getView();
        $view->doctype('XHTML1_STRICT');
        $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
        $view->headTitle()->setSeparator(' - ');
        $view->headTitle('Sum Puzzles');
        $view->addHelperPath(APPLICATION_PATH . '/views/helpers/');
    }

}

index.php

<?php

error_reporting(E_ALL | E_STRICT);
// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
define('APPLICATION_ENV', 'testing');


// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

У кого-нибудь есть идеи, почему они не работают с Linux?

1 Ответ

1 голос
/ 16 февраля 2011

После большой отладки выясняется, что имя файла для помощников в Linux чувствительно к регистру и поэтому должно начинаться с заглавной буквы

...