第一步:入門
如何使用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教學有興趣的朋友有幫助。