php代碼 Phpbean路由轉送的php代碼

WBOY
發布: 2016-07-29 08:37:24
原創
888 人瀏覽過

第一步:入門
如何使用phpbean進行路由轉送呢?下面是一個簡單的使用範例。
首先,index.php是程式的單一入門,主要進行路由轉送的工作。 Index.php的程式碼如下:
 
include('startup.php');//載入啟動檔案 
try{ 
    $router=new Phpbean_Router(>    $router=new Phpbean_Router(>初始化//Router路由器 
    $router->set_path(SITE_PATH.'/app/actions');//設定控制器的目錄 
    $router->dispatch( );//路由轉送處理      echo $e; 

?> 
其中啟動檔案如下:
 
define('SITE_PATH'',str_replace(PATH'',)(Pplace(PATH'',)_Pplace(PATH'',)' ,dirname(__FILE__))); 
set_include_path(get_include_path().PATH_SEPARATOR.SITE_PATH.'/libs/'); 
function __autoload($namename){ATH> '.str_replace('_','/',$filename).'.php'; 
    if(is_file($filepath)){ 
      ?> 
然後,我們寫一個action測試一下。 (為什麼選擇action而不是使用controller做為控制,可以看我之前的文章逐步提升框架的性能)
比如app/actions/indexAction.php,在裡面寫一個測試
 
class indexAction extends Phpbean_Action { 
    function run(){ 
        echo 'phpbean_indexCpage!'; 
開啟IE輸入位址http://localhost:8080/phpbean/ index.php/index看看結果。
第二步:取得url參數
比如說我要使用url傳遞參數,如何在PHPbean實現呢? phpbean中的pathinfo支援兩種取得資料方式,一種是依照關鍵字,一種是依照順序(預設)。
以剛才的例子來說,在網址http://localhost:8080/phpbean/index.php/index後面加上參數http://localhost:8080/phpbean/index.php/index/1/2 /3/4/
那麼,就使用關鍵字來取得url參數,使用$this->_getParam('1','key')。例如在indexAction的run方法中增加echo $this->_getParam(‘1','key')那麼就對應輸出2。注意,在phpbean中按關鍵字取得url參數不要求配對配對。例如說$this->_getParam('1','key') 回傳2, $this->_getParam('2','key')就會回傳3.
依照次序來取得url參數應該更方便。比如說$this->_getParam(1)就會回傳1,$this->_getParam($n)就會回傳第$n個參數。
第三步驟、Action多層次目錄
一般來說,程式的設計都是module->controller->action的,比如說blog->user->login。那麼使用phpbean的action可以很方便進行映射。
首先,我們在app/actions下方增加blog資料夾,再在app/actions/blog/下方增加user資料夾。
現在我們就來寫blog->user->login這個action。首先在app/actions/blog/user/下方建立loginAction.php。內寫入
 
class blog_user_loginAction extends Phpbean_Action { 
    function run(){  } 

?> 
然後測試下http://localhost:8080/phpbean/index.php/blog/user/login/,是不是成功了呢?
那麼,「如何增加一些action的公用操作呢?例如admin目錄下面的所有action都要進行isadmin()檢查,如何實現呢?」在phpbean中可以使用繼承很方便的來實現。下面以blog->admin為例來實作。
首先,增加一個admin目錄,在該目錄下增加一個action基類admin.php(注意,如果不是action,那麼文件命名就不要使用***Action.php來命名)
 
abstract class _blog_admin extends Phpbean_Action { 
    function __construct($params){      } 

?> 
然後,admin目錄下的所有的action都繼承與_blog_admin,而不是Phpbean_Action,這樣就實現了公用操作的封裝。例如在admin目錄下建立一個loginAction.php
 
class blog_admin_loginAction extends _blog_admin { 
    f 🎜>    } 

?>
以上就介紹了php程式碼 Phpbean路由轉送的php程式碼,包含了php程式碼的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板