2010年12月26日 星期日

Zend Framework 常用備忘

  • 不用 layout
    在Action裡面使用
    $this->_helper->layout()->disableLayout() ;
    $this->getHelper('layout')->disableLayout();
    
  • 不用 view  render(不輸出script資料夾裡面的樣版)
    在Action裡面使用
    $this->_helper->viewRenderer->setNoRender() ;
    $this->getHelper('viewRenderer')->setNoRender();
    
  • 自訂Action Helper
    http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelper.broker

    先在index.php裡面設定action helper資料夾
    Zend_Controller_Action_HelperBroker::addPath( '資料夾路徑', 'Class Prefix');
    
    使用時
    $obj = Zend_Controller_Action_HelperBroker::getStaticHelper('class名稱');
  • 在layout裡面取得Controller和Action名稱
    Zend_Controller_Front::getInstance()->getRequest()->getControllerName();
    Zend_Controller_Front::getInstance()->getRequest()->getActionName();
    
  • redirect
    http://framework.zend.com/manual/1.12/en/zend.controller.action.html#zend.controller.action.utilmethods
    //轉向後,馬上exit(),後面的程式碼不會執行
    $this->_redirect('shop',array('exit'=>TRUE));
    
    http://framework.zend.com/manual/1.12/en/zend.controller.actionhelpers.html#zend.controller.actionhelper.redirector.basicusage
    $this->_redirector->redirectAndExit();
  • partial,小區塊view在不同頁面重覆使用
  • ex1:module的view重覆使用aa.phtml (檔案建立在 module/deault/view/script/aa.phtml)
    //例如在 module/deault/view/script/index/index.phtml
    ....
    <?php echo $this->partial('aa.phtml'); ?>
    ...
    
    ex2:layout重覆使用 bb.phtml (檔案建立在 layouts/partial/bb.phtml)
    //例如在 layouts/layout.phtml
    ....
    <?php echo $this->partial('partial/bb.phtml') ?>
    ...
    
    ex3:變數傳遞
    //例如在 layouts/layout.phtml
    ....
    <?php echo $this->partial('cc.phtml', array('var1'=>'aa', 'var2'=>'bb',...)) ?>
    ...
    

相關連結:
Zend Framework 2 常用備忘 

沒有留言:

張貼留言