Skip to content

Latest commit

 

History

History
41 lines (32 loc) · 3.19 KB

README.md

File metadata and controls

41 lines (32 loc) · 3.19 KB

PHP/MySQLで記事投稿サービスを作る

リンク

ディレクトリについて

/docker

環境構築に関する環境変数や初期設定ファイルが含まれています。懸念点として php.ini が若干アプリケーションに依存しているので、別のディレクトリがあってもいいのかなと思いました。

/html

DOCUMENT_ROOT となるディレクトリです。

  • config: 初期設定用ファイル
  • uploads: アップロードされた画像ファイルの保存場所
  • その他:各コントローラーの処理を発火させる簡易的なルーター

/src

実際どうなっているかは分かりませんが、自分ではMVCを意識して作ったつもりです。

/src/app

MVCの初期設定に関する処理をまとめたディレクトリです。思いついた機能を逐一追加していたので、若干整理されていない感じがあるかもしれません。セッションの有効期限は 0 に設定しているので、ブラウザを終了したらセッションが終了するはずです。

/src/controllers

ルーターからコントローラーの処理を発火させています。モデルから整形されたデータを取得したり、リクエストに応じてバリデーションを行っています。

/src/models

データベースのレコードをクラスに整形しています。データベースの操作は主に Manager に一任していて、ModelImage モデルのコンストラクタ以外は何も処理をしていないピュアなオブジェクトです。モデルのプロパティを読み取り専用にできたらもっと良いのかなと思っています。

/src/views

コントローラから値を受け取って画面に表示するテンプレートです。base/header ではセッションから現在のユーザーを取得しています。分岐を追加することでもっと柔軟な表示ができると思いますが、今回は最低限に留めています。

データベースについて

/docker/mysql/docker/create_tables.sql にSQLが記載されています。 正規化やER図についてはコチラのGoogle Documentにまとめてあります。