ステップ 1: はじめに
ルーティングと転送に phpbean を使用するにはどうすればよいですか?以下に簡単な使用例を示します。
まず、index.php はプログラムの単一のエントリ ポイントであり、主にルーティングと転送の作業を実行します。 Index.php のプログラムコードは次のとおりです:
include('startup.php');//スタートアップファイルをロードします
try{
$router=new Phpbean_Router() ;//ルーターを初期化します
$router->set_path(SITE_PATH.'/app/actions');//コントローラーのディレクトリを設定します
$router->dispatch();/ /ルート転送処理
}catch (Exception $e){
echo $e;
?> 起動ファイルは次のとおりです。 >
define('SITE_PATH',str_replace('','/',dirname(__FILE__)));
set_include_path(get_include_path().PATH_SEPARATOR.SITE_PATH.'/libs/' );
function __autoload ($filename){
$filepath = SITE_PATH.'/libs/'.str_replace('_','/',$filename).'.php'; is_file($filepath)){
include($filepath);
}
}?> 次に、それをテストするアクションを作成します。 (コントローラーをコントロールとして使用する代わりにアクションを選択する理由については、フレームワークのパフォーマンスを段階的に向上させることに関する私の以前の記事を参照してください)
たとえば、app/actions/indexAction.php にテストを作成します
classindexAction extends Phpbean_Action {
function run(){
echo 'phpbean_index page!';
IE を開きますそしてアドレス http://localhost :8080/phpbean/index.php/index を入力して結果を確認します。
ステップ 2: URL パラメーターを取得する
たとえば、URL を使用してパラメーターを渡したい場合、PHPbean でどのように実装できますか? phpbean の Pathinfo は、データを取得する 2 つの方法をサポートしています。1 つはキーワードによるもの、もう 1 つは順序 (デフォルト) によるものです。
今の例では、アドレス 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 番目のパラメータを返します。
第 3 ステップ、アクション マルチレベル ディレクトリ
一般的に言えば、プログラムの設計はモジュール→コントローラ→アクション (ブログ→ユーザー→ログインなど) になります。その後、phpbean のアクションを使用して簡単にマッピングできます。
まず、app/actions の下にブログ フォルダーを追加し、次に app/actions/blog/ の下にユーザー フォルダーを追加します。
次に、ブログ->ユーザー->ログインアクションを作成しましょう。まず、app/actions/blog/user/ に loginAction.php を作成します。
class blog_user_loginAction extends Phpbean_Action {
function run(){
echo 'blog_user_login' } }
}
?>
次に、http://localhost:8080/phpbean/index.php/blog/user/login/ をテストします。
それでは、「アクションの一般的な操作を追加するにはどうすればよいですか? たとえば、admin ディレクトリ内のすべてのアクションは isadmin() によってチェックされる必要があります。これを実装するにはどうすればよいですか? phpbean では、継承を使用してこれを実現できます。」これはとても便利です。これを実装する例として blog->admin を取り上げてみましょう。
まず、管理ディレクトリを追加し、このディレクトリにアクション基本クラス admin.php を追加します (アクションではない場合、ファイル名に ***Action.php を使用しないことに注意してください)
abstract class _blog_admin extends Phpbean_Action {
function __construct($params){
parent::__construct($params); echo '管理者チェック! ';
}
}
?>
すると、admin ディレクトリ内のすべてのアクションが Phpbean_Action ではなく _blog_admin から継承され、パッケージ化の公開操作が実現されます。たとえば、管理ディレクトリに loginAction.php を作成します。
> }
}
?>