コントローラから簡単に呼び出すことができるAction Helperの例を示します。
<?php
class My_Helper_CheckFbLogin extends Zend_Controller_Action_Helper_Abstract
{
public function direct(array $params = array())
{
// you could pass in $params as an array and use any of its values if needed
$request = $this->getRequest();
$view = $this->getActionController()->view;
$fbLogin = new Zend_Session_Namespace('fbLogin'); #Get Facebook Session
if(!$fbLogin->user) {
$this->getActionController()
->getHelper('redirector')
->gotoUrl('/'); #Logout the user
}
return true;
}
}
これを使用するには、ヘルパーブローカーにどこに住むかを伝える必要があります。
// Make sure the path to My_ is in your path, i.e. in the library folder
Zend_Loader_Autoloader::getInstance()->registerNamespace('My_');
Zend_Controller_Action_HelperBroker::addPrefix('My_Helper');
を次に、あなたのコントローラでそれを使用する:ここではあなたがそうするように、ブートストラップに置くことができるコード例がある
public function preDispatch()
{
$this->_helper->CheckFbLogin(); // redirects if not logged in
}
それは多くの詳細には触れませんが、Writing Your Own Helpersは便利です同じように。あなたは、デフォルトの代わりに延びているから、あなたもbaseControllerを設定することができ、すべてのコントローラでは、このチェックが必要な場合は
フォルダ構造とは何ですか?コントローラ/アクション/ヘルパー/ My_Helper.php? – Uffo
私がこの例を取ったプロジェクトは、 'library/My/Helper/CheckFbLogin.php'という構造を持っています。 – drew010
これを試してみていただきありがとうございます。私はZFのフォルダ構造を理解できませんでした:) – Uffo