撰寫Zend Framework的front controller plugin

Zend Framework的Front controller plugin是一個類別,負責在Zend Framewrok控制下的單一入口下,進行各類程式邏輯的運行,由於所有程式只有單一入口,只要在單一入口撰寫適當的plugin就可以適用於所有的程式專案當中,程式會比較簡潔也容易維護,Front controller plugin就是扮演這種角色,簡化程式碼的撰寫。

controller plugin的撰寫步驟:

 

1.設定命名空間

application.ini加入下列指令

autoloaderNamespaces[]='Totou_'

 

2.讓Front controller執行plugin

application.ini加入plugin的名稱

resources.frontController.plugins[]='Totou_Plugin_Session'

 

3.撰寫plugin

class Totou_Plugin_Session extends Zend_Controller_Plugin_Abstract{
public function routeStartup(Zend_Controller_Request_Abstract $request)
    {
        $this->getResponse()
             ->appendBody("<p>routeStartup() called</p>\n");
    }
 
    public function routeShutdown(Zend_Controller_Request_Abstract $request)
    {
        $this->getResponse()
             ->appendBody("<p>routeShutdown() called</p>\n");
    }
 
    public function dispatchLoopStartup(
        Zend_Controller_Request_Abstract $request)
    {
        $this->getResponse()
             ->appendBody("<p>dispatchLoopStartup() called</p>\n");
    }
 
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        $this->getResponse()
             ->appendBody("<p>preDispatch() called</p>\n");
    }
 
    public function postDispatch(Zend_Controller_Request_Abstract $request)
    {
        $this->getResponse()
             ->appendBody("<p>postDispatch() called</p>\n");
    }
 
    public function dispatchLoopShutdown()
    {
        $this->getResponse()
             ->appendBody("<p>dispatchLoopShutdown() called</p>\n");
    }
}

 

資料來源:

http://geekabyte.blogspot.tw/2012/07/understanding-zend-frameworks-plugin.html

分類:Zend Framework