- トップページ: / or /index.php
- ユーザー記事一覧ページ: /user.php?id=<screen_name>
- タグ記事一覧ページ: /tag.php?name=<tag_name>
- タグ一覧ページ: /tags.php
- 新規登録ページ: /signup.php
- ログインページ: /login.php
- 記事作成ページ: /create.php
- 記事ページ: /post.php?id=<post_slug>
- 記事編集ページ: /edit.php?id=<post_slug>
環境構築に関する環境変数や初期設定ファイルが含まれています。懸念点として php.ini
が若干アプリケーションに依存しているので、別のディレクトリがあってもいいのかなと思いました。
DOCUMENT_ROOT
となるディレクトリです。
config
: 初期設定用ファイルuploads
: アップロードされた画像ファイルの保存場所その他
:各コントローラーの処理を発火させる簡易的なルーター
実際どうなっているかは分かりませんが、自分ではMVCを意識して作ったつもりです。
MVCの初期設定に関する処理をまとめたディレクトリです。思いついた機能を逐一追加していたので、若干整理されていない感じがあるかもしれません。セッションの有効期限は 0
に設定しているので、ブラウザを終了したらセッションが終了するはずです。
ルーターからコントローラーの処理を発火させています。モデルから整形されたデータを取得したり、リクエストに応じてバリデーションを行っています。
データベースのレコードをクラスに整形しています。データベースの操作は主に Manager
に一任していて、Model
は Image
モデルのコンストラクタ以外は何も処理をしていないピュアなオブジェクトです。モデルのプロパティを読み取り専用にできたらもっと良いのかなと思っています。
コントローラから値を受け取って画面に表示するテンプレートです。base/header
ではセッションから現在のユーザーを取得しています。分岐を追加することでもっと柔軟な表示ができると思いますが、今回は最低限に留めています。
/docker/mysql/docker/create_tables.sql
にSQLが記載されています。
正規化やER図についてはコチラのGoogle Documentにまとめてあります。