ZendFramworkに限らない、ざっくりとしたWebフレームワークの説明をさせてもらいます。
まずApache等で、どんなURLでも特定のphpへのアクセスへ書き換える手法を使い、フレームワークの入り口となるphpへアクセスを誘導します。仮にこのphpファイルをindex.phpとします。
そこへ例えば以下のようなアクセスがあったとします。
http://localhost/sample/proc
index.phpにはREQUEST_URIとして上記URLが渡されます。
そして、これをindex.php上で分解します。
http://localhost ベース
sample コントローラ
proc アクション
そして、index.phpは該当のコントローラを生成、該当のメソッドを呼び出すようになっています。
PHP
1$className = "sample" . "Controller"; // クラス名にはControllerと付いている前提
2$method = "proc" . "Action"; // メソッド名にはActionと付いている前提
3$controller = new $className();
4$controller->$method();
これでSampleControllerのprocActionメソッドが呼びだされます。
このように、コントローラクラスとアクションメソッドを定義したファイルだけ作っておけば、URLから勝手に該当クラスのメソッドが呼ばれるようになっているのです。
すごいおおざっぱに書きましたが、多くのPHPのWebフレームワークはこのような流れになっています。本当の動作は各フレームワークのソースコードを目で追ってみるとよいでしょう。
- URLに関わらず、入り口になるphpファイルへアクセスが来る
- URLをクラス名、アクション名、パラメータ等に分解する
- 上記情報をもとにコントローラクラスを生成、アクションメソッドをパラメータ付きで呼び出す
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/05 09:24
2016/07/05 09:28
2016/07/05 09:33
2016/07/05 09:43