HatenaPocketフレームワークを学習するには、フレームワークを自作するのが一番だとどこかで聞いたため、いっちょPHPでオレオレフレームワークを作ってみました。製作期間は大体12時間くらい。ITの現場では負の遺産としてよく揶揄されるオレオレフレームワーク。F社とかが作った独自フレームワークとか、社内の凄腕?プログラマが作ったやつとか...。私一人で使うならいいよね。コードを晒して解説して、初学者の糧になってもらえればと思います。Controlle)を採用しています。MVCとはなんぞやみたいな説明はWebの各所で語られています。・DBMSはSQLite、MySQLに対応といったところでしょうか。アプリケーションの本体。Web公開ディレクトリルーティングルーティングはWebアプリケーションフレームワークの基本的な機能です。URLとファイルを一対一で紐づけず、URLの文字列やクエリストリングの命名ルールで呼び出すディレクトリ、ファイルを決定するために利用します。ルーティングを使うとURLを変えずに呼び出されるプログラムを変更することが容易になりますし、Webアプリが何の言語でできてるか隠すことができるのでセキュリティの向上にもつながります。このフレームワークでは、どんなURLのアクセスも必ずwebroot/index.phpを通して振り分けることによってルーティングを実現します。app/controller/配下に同名のPHPファイルがないか探す。コントローラーから戻された内容をレスポンスとして戻す。exit;}URLに書かれた内容を無視してindex.phpにアクセスさせるには、ApacheのMod_Rewriteを使用します。Mod_Rewriteの定義は「httpsd.conf」にも書けますが、対象としたいディレクトリに「.htaccess」を置くことでも実現できます。index.phpですべてのアクセスをindex.phpに集めています。cssやjs、イメージファイルにはアクセスできて欲しいので、それを除外条件として、RewriteCondに書いてます。コントローラールーティングから最初に呼ばれる処理がコントローラーです。ここでは、モデルの呼び出しとテンプレートの生成を行います。コントローラーは機能の数だけ増えるので、基底クラスを作って共通部分を取り出すようにしています。requireやuseを何度も書きたくないですしね。}}機能ごとに作成するコントローラーでは、app\controllerクラスを継承して作成します。}}モデルモデルではDBMSへの接続とテーブルデータの取得・更新を制御します。こちらも基底クラスを作っています。}}モデルはテーブルごとに作成します。テーブルにアクセスするためのSQLをメソッドとして定義します。今時はORM使うのが普通ですけど...。最後はビューです、コントローラーから渡されたパラメータをHTMLに展開するために使用します。テンプレートエンジンとしてSmartyを使っています。素のPHPでも書けますが、テンプレートエンジンを使うことでより記述を簡略化できます。headタグの中身やヘッダー、フッターは各ページで共通になるので、外部テンプレートを読み込むようにしています。file='template/foot_tag.tpl'}</html>「https://www.apps.danishi.net/MyFramework/sample」のURLを叩くと、これらのモジュールを通り下の画面が出力されます。処理フローは、index.phpがURLを解析し、sampleコントローラーをインスタンス化。GETリクエストなのでindex()メソッドを呼び出す。mytableモデルをインスタンス化、getAlll()メソッドを呼び出しmytableのレコードを連想配列で受け取る。受け取った連想配列をパラメータとしてview()メソッドを呼び出し、そのままテンプレートに渡す。テンプレートでは受け取ったパラメータを割当てHTMLを生成する。生成したHTMLをindex.phpに返し、クライアントに返却する。バリデータやヘルパーメソッドを実装したり、セッション管理の方法とか、セキュリティとか、色々見直すところは沢山あるのでちょっとずつバージョンアップしていこうと思います。MVCフレームワークを実際に作ってみることでCakePHPやLaravelなどの著名なフレームワークの動きもおぼろげに掴めるようになる気がします。PHPのMVCフレームワークって色々ありますが、同じPHPな以上、結局その内部でやっていることってそう変わらないはずなので。...EclipseでPHPの開発環境を構築するどうも。PHPでCloudFrontディストリビューションを作成するPHPを使って、CloudFrontディストリビューションを作成してみます。...軽量PHPフレームワークSlimを使ってサクッとWebアプリひな形を作ってみるPHPには数多くのフレームワークがあります。コメントをキャンセルメールアドレスが公開されることはありません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。