Я работал над проектом Zend Framework на локальном хосте (ОС: Snow Leopard), и когда я загрузил файлы на хост-сервер (виртуальный хостинг), я получил несколько ошибок о помощнике вида, который я там использовал.
Более конкретно:
Структура проекта выглядит следующим образом: (я пропустил некоторые не относящиеся к делу подпапки, а цифры в паратезе приведены здесь просто для справки, они не включены в имя папки в проекте)
application
-configs
-controllers
-layouts
--scripts
-models
-modules
--admin
---controllers
---models
---views(2)
----filters
----helpers(2)
----scripts
-views(1)
--helpers(1)
--scripts
library
public
В папке helpers (1) у меня есть помощник вида BaseURL.php:
class Zend_View_Helper_BaseURL
{
function baseURL()
{
$fc = Zend_Controller_Front::getInstance();
return $fc->getBaseUrl();
}
}
Я использую его, например, в макете, чтобы написать пути для таких вещей, как CSSфайлы, файлы JS, что-то вроде этого:
<script src="<?php echo $this->baseURL();?>/public/js/somejavascript.js></script>
И обычно я использую его, когда мне нужен базовый URL (не только в макетах, но и в представлениях).Я использовал один и тот же помощник в модуле приложения по умолчанию и в модуле администратора (modules / admin / ...).Локали, все прошло нормально, никаких проблем.Когда я загрузил проект, я получил такие ошибки, как:
An error occurred
Application error
Exception information:
Message: Plugin by name 'BaseURL' was not found in the registry; used paths: Cmsadmin_View_Helper_: /path_to_site_like_public_html/application/modules/cmsadmin/views/helpers/ Zend_View_Helper_: Zend/View/Helper/
Ошибка выше была для строки, использующей $ this-> baseURL () в макете администратора (который вызывается в модуле администратора).
Сначала я подумал, может быть, потому что помощник объявлен в другом модуле (модуль по умолчанию), он не найден фреймворком в модуле администратора.Но почему локально все работает?Я не понимаюКроме того, если я изменю $ this-> baseURL () на $ this-> baseUrl () в том же файле макета admin.phtml, в модуле администратора все будет работать (онлайн и локально).
Если кто-томог бы просветить меня до того, что мне не хватает, я был бы признателен.
PS: Поскольку это еще не ясно в моей голове, возможно, кто-то может сказать мне: помощник, объявленный в модуле, доступен во всехмодули сайта?(локальная разработка сказала мне, что это так, поскольку он работает локально, но что не так с загруженным проектом?).
Спасибо.