0

ZF でカスタム アクション ヘルパーを作成しようとしています。私はドキュメントを読み、グーグルで助けを求めましたが、これを機能させることができません。

Bootstrap.php の関連コードは次のとおりです (これを機能させるために私が試みたすべてを含む):

protected function _initAutoload()
{
    $autoLoader=Zend_Loader_Autoloader::getInstance();
    $resourceLoader=new Zend_Loader_Autoloader_Resource(array(
        'basePath'=>APPLICATION_PATH,
        'namespace'=>'',
        'resourceTypes'=>array(                
            'models'=>array(
                'path'=>'models/',
                'namespace'=>'Model_'
             ),  
             'forms'=>array(
                'path'=>'forms/',
                'namespace'=>'Form_'
             ),
             'helpers'=>array(
                 'path'->'../library/My/Action/Helpers/',
                 'namespace'->'My_Action_Helpers_'
             ),
         )
     ));

     $autoLoader->pushAutoloader($resourceLoader);

     Zend_Controller_Action_HelperBroker::addHelper(new My_Action_Helpers_Detect()); 
}

library/My/Action/Helpers/Detect.php でヘルパーを宣言する場所は次のとおりです。

class Detect extends Zend_Controller_Action_Helper_Abstract
{
    private $_agents = array('safari', 'msie', 'chrome', 'firefox', 'opera');

    public function direct($type) {
        $type = strtolower($type);

        if(!in_array($type, $this->_agents)) return false;

        return substr(strtolower($_SERVER['HTTP_USER_AGENT']), $type);
    }  
} 

(ところで、Zend_Http_UserAgent を使用したほうがよいことはわかっていますが、php.ini ファイルへのアクセス権がありません)

ここで、コントローラーからヘルパーを初期化します。

init()
{
...
        //$this->_userAgentHelper = $this->_helper->getHelper('UserAgentDetect');
...
}

これは私が得ているエラーです:

/var/www/html/dev/library/My/Action/Helpers/Detect.php でクラス Detect を再宣言できません

よろしくお願いいたします。

4

0 に答える 0