なぜこれが機能しないのかについて、私の髪を引っ張っています。たとえば、Zend docs、ここのいくつかの投稿、および雑多なブログにあるコントローラー アクション ヘルパーを登録しようとしています。application.ini と Bootstrap の両方で試行が行われました。
ヘルパー自体は APPLICATION_PATH にあります。「/コントローラー/ヘルパー」。ファイル自体は Scoping.php と呼ばれます。application.ini で、appnamespace = ""。
<?php
class Helper_Scoping extends Zend_Controller_Action_Helper_Abstract
{
public function direct()
{
// code is here
}
}
最初にapplication.iniで試しました:
resources.frontController.actionhelperpaths.Helper = APPLICATION_PATH "/controllers/helpers"
resources.frontController.plugins.Scoping = "Helper_Scoping"
コントローラーで次を呼び出すと、「Action Helper by name Scoping not found」というメッセージとともに例外がスローされます。
$this->_helper->Scoping();
次に、Bootstrap で次のことを試しました (私が見た他の例に基づいて、「Helper」と「Helper_」の両方を試しました)。
protected function _initActionHelpers()
{
Zend_Controller_Action_HelperBroker::addPath(
APPLICATION_PATH . '/controllers/helpers',
'Helper_'
);
Zend_Controller_Action_HelperBroker::addHelper(
new Helper_Scoping()
);
}
今回はキャッチされない例外が発生しますが、同じ考えです:「致命的なエラー: 116 行目の /Users/ppjd/Sites/dbos/application/Bootstrap.php にクラス 'Helper_Scoping' が見つかりません」
非常に多くの実用的な例があるので、何かばかげたことを見逃しているに違いないと思います。SOSください。