Web 開発におけるディレクトリ構成
┬ [app] ────┬ [functions]
├ [bin] └ [classes]
├ [config]
├ [cgi-bin]
├ [documents]
├ [html]
├ [lib]
├ [smarty]───┬ [templates]
└ [tmp] └ [templates_c]
■ app
実際に動く部分です。「functions」に関数群を、「classes」にクラス群を格納しています。ちなみに、MVC で言うところの M の部分、すなわち「モデル」に相当するものも、ここに置いています。
■ bin
cron で定期的に起動するなど、基本的にブラウザのアクセスで起動させないタイプの物はここに置いてあります。
■ config
適時変更する可能性のある定数(ex.消費税率)や、本番環境・開発環境によって変化するもの(ex.管理者メールアドレス)などをファイルに記し、格納してあります。
■ cgi-bin
cgi ファイルなどを置く必要のある場合はこちらに置くこともあります。
■ documents
サイトについての資料が置いてあります。基本的に本番環境にはアップする必要はないものです。
■ html
ここがドキュメントルートになります。プロジェクトによっては「public_html」だったり「webroot」だったりします。
■ lib
自分たちで作っていない、外部ライブラリを格納しておきます。上記の例では Smarty を利用していますので、その本体や、デバッグツールの dBug などが置かれています。
■ smarty
テンプレートファイルを格納しています。この例では Smarty を利用しているためこういう名称になっていますが、本体と混同しないよう「templates」などという名称にしても良いですね。
■ tmp
一時ファイル置場です。フォームの確認画面に行く際に一時的にファイルを置いたり、パフォーマンス向上のためにキャッシュを利用するときなどにここを使用します。
いかがでしょうか。
最近ではフレームワークを利用する事が多く、そのディレクトリ構成をそのまま使う事も多いですし、レンタルサーバの制限によってはドキュメントルート以下のみにしかファイルが置けなかったりして、これが全てではありませんが、こういう構成でやっているプロジェクトもあります、というご紹介でした。
「うちではこうしてるぜ!」「こうした方が良いんじゃね?」というご意見があれば、ぜひコメントください。