PHP 学習 part. 12
フレームワークによる効率的な開発
そういやPHPの勉強してたっけと今更思い出したので、再開したいと思います。
GitHub - YamaKasa3/php_application
ディレクトリ構造
application/ ├controllers/ ├core/ ├models/ ├views/ ├web/
controllers: 読んで字のごとくコントローラを配置します。core: フレームワークを構成するクラスを配置します。models: モデルを配置します。views: HTMLファイルを配置します。web: webブラウザからアクセスしたときのドキュメントルートとなります。
いわゆるMVCってことでしょうか。
core/ClassLoader.php
オートロードに関する処理をまとめたクラス。
core/Request.php
GETやPOSTの判定や値の取得、リクエストされてURLの取得などの機能を実装します。
$_SERVER['REQUEST_METHOD'] // ページにアクセスする際に使用されたリクエストのメソッド名 $_SERVER['HTTP_HOST'] // 現在のリクエストに Host: ヘッダが もしあればその内容
core/Router.php
Routerクラスはルーティング定義配列とPATH_INFOを受け取り、ルーティングパラメータを特定する。
core/Response.php
HTTPヘッダとHTMLなどのコンテンツを返します。HTTPヘッダを送信するためにheader()関数を使います。
core/DbManager.php
PDOを使ってデータベースに対する操作を記述します。
core/DbRepository.php
テーブルごとにDbRepositoryクラスの子クラスを作成します。SQLの実行によく使われる処理は抽象化しておきます。
調べたこと
ホスト
・「クライアント」に対応するのは「サーバ」 ・「ゲスト」に対応するのは「ホスト」
GETとPOST
GETは冪等性があり、POSTはない。