Zend View Helper をプロジェクトに適切に追加する方法がわかりません。
私のプロジェクトは次のようになります。
Project
--application
----configs
----controllers
----layouts
----models
----modules
------content
--------controllers
----------Index
--------forms
--------models
--------views
----------filters
----------helpers
------------myHelper
----------scripts
------------index
----views
私のブートストラップファイルは次のようになります:
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
protected function _initViewHelpers()
{
$view = new Zend_View();
$view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->setView($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
}
}
モジュールのブートストラップ ファイルは次のようになります。
class Content_Bootstrap extends Zend_Application_Module_Bootstrap {
public function _initAutoload() {
$resourceLoader = $this->_resourceAuloloader;
$autoloader = new Zend_Application_Module_Autoloader(array('namespace' => 'Application',
'basePath' => APPLICATION_PATH));
Zend_Controller_Action_HelperBroker::addPath(
APPLICATION_PATH . '/modules/content/controllers/helpers', 'Content_Controller_Helper_');
return $autoloader;
}
}
最後に、私の 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.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ""
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = "****"
resources.db.params.dbname = "database"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.router.routes.contentroute.route = "/wms/content/:controller/:action/*"
resources.router.routes.contentroute.defaults.module = content
resources.router.routes.contentroute.defaults.controller = index
resources.router.routes.contentroute.defaults.action = index
autoloaderNamespaces[] = "ZendX"
[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
今、私はビューを持っています。そのビューで、自分で作成したビューヘルパー名 MyHelper を呼び出そうとします
class Content_View_Helper_MyHelper {
public function test() {
return 'test';
}
それを使用して自分のビューでそれを呼び出そうとするとecho $this->test();
、エラーが発生します
「test」という名前のプラグインがレジストリに見つかりませんでした。使用されるパス: Content_View_Helper_: C:/wamp/www/HPU/application/modules/content/views\helpers/ ZendX_JQuery_View_Helper_: ZendX/JQuery/View/Helper/ Zend_View_Helper_: Zend/View/Helper/
答えを求めてググってみましたが、残念ながら提供された答えはどれもうまくいきませんでした。それらのほとんどは、ブートストラップまたはapplication.iniにヘルパーパスを追加するように私に言いましたが、Jqueryに関するエラーメッセージを受け取りました...
だから私はこれを解決する方法に途方に暮れています、可能な解決策は高く評価されます:)