ディレクトリ構成は、大きく分けて3つに分かれます。
(1) SyLディレクトリ (SYL_DIR)
SyLフレームワークのライブラリラリディレクトリ。SYL_DIR 定数として定義されます。
(2) プロジェクトディレクトリ (SYL_PROJECT_DIR)
WEBアプリケーションを配置するディレクトリで、1つ以上のアプリケーションを含みます。 SYL_PROJECT_DIR 定数として定義されます。
(3) コンテンツディレクトリ
ドキュメントルート以下の公開ディレクトリ。フロントコントローラファイルを配置します。
通常ディレクトリ階層は、SyLのディレクトリ1つに対して、プロジェクトが複数存在し、さらにプロジェクトに対してアプリケーションが複数存在する構成になっています。 アプリケーションは、1つ以上のフロントコントローラから起動されるので、構成比は次のようになります。
SyL <= プロジェクト <= アプリケーション (<= フロントコントローラファイル)
SyLディレクトリは、アーカイブを解凍した直後だと下記のようになります。
SyL + bin - コマンドディレクトリ + framework - ライブラリ関連ディレクトリ + Core - フレームワーク関連ライブラリディレクトリ + Lib - 汎用ライブラリディレクトリ + opt - フレームワークアプリケーションディレクトリ
framework ディレクトリは、SyLフレームワークが使用するライブラリを格納されています。 framework/Core ディレクトリは、SyLフレームワーク必須のコアライブラリが格納され、 framework/Lib ディレクトリは、汎用的に使用できるライブラリが格納されています。
bin ディレクトリには、SyLフレームワークに添付されているコマンドファイルが格納され、opt ディレクトリは、そのアプリケーションの実体が格納されています。
プロジェクトを作成したときの初期ディレクトリ構成は下記のようになります。
+ [project_dir] - プロジェクトディレクトリ
+ apps - アプリケーションディレクトリ
+ [app_name] - アプリケーションディレクトリ(個別)
+ actions - アクションディレクトリ
+ config - アプリケーション設定ディレクトリ
+ lib - アプリケーションライブラリディレクトリ
+ templates - テンプレートディレクトリ
+ …
+ config - プロジェクト内共通設定ディレクトリ
+ lib - プロジェクト内共通ライブラリディレクトリ
+ var - プロジェクト内共通リソース関連ディレクトリ
+ cache - キャッシュディレクトリ
+ [app_name] - アプリケーションキャッシュディレクトリ (*)
+ …
+ logs - ログディレクトリ
+ [app_name] - アプリケーションログディレクトリ (*)
+ …
+ session - セッションファイル格納ディレクトリ (*)
+ syslogs - システムログディレクトリ
+ [app_name] - アプリケーションシステムログディレクトリ (*)
+ …
+ skel-templates - スケルトンテンプレートディレクトリ
+ templates - テンプレートキャッシュディレクトリ
+ [app_name] - アプリケーションテンプレートキャッシュディレクトリ (*)
+ …
(*) 書き込みディレクトリ
1つのプロジェクトディレクトリには、「apps」「config」「lib」「var」ディレクトリが含まれます。
apps ディレクトリは、アプリケーションのプログラムに関わるファイルを格納するディレクトリで、個別のアプリケーション([app_name])1つ以上で構成されます。 個別のアプリケーションは、アクションファイルを設置する「actions」ディレクトリ、アプリケーション設定ファイルを配置する「config」、 アプリケーションライブラリを配置する「lib」、テンプレートファイルを設置する「templates」ディレクトリから構成されます。
config ディレクトリは、プロジェクト内共通で使用する設定ファイルが格納されます。 初期状態ではコンテナの設定ファイル(component.xml)や、定数値を定義した設定ファイル(defines.xml)、 フィルタ定義ファイル(filters.xml)の3ファイルが含まれます。 追加ファイルやディレクトリに関しては自由にカスタマイズでき、例えばプロジェクト固有の外部設定ファイルを格納したりします。
lib ディレクトリは、プロジェクト内共通で使用するライブラリを格納するディレクトリです。 プロジェクト内で共通して使用するライブラリを作成したときに使用します。
var ディレクトリは、プロジェクト内共通で使用するリソースを含む書き込み可能なディレクトリです。 「skel-templates」以外のディレクトリは、実行ユーザーに対して書き込み可能な権限となります。
ドキュメントルート以下に配置するコンテンツディレクトリは、特に制約はありません。 SyLフレームワークに関連するのは、適当なディレクトリに配置するコントロールファイルだけです。
+ [document root] - ドキュメントルート [front controller] - コントロールファイル
コントロールファイルは、ドキュメントルート以下の公開ディレクトリに設置され、SyLフレームワークを起動する役割を担います。 起動パラメータに設定したアプリケーションにフレームワークの処理を紐付けます。 配置するディレクトリは、ドキュメントルート以下であれば、任意の階層に設置できます。
SyLフレームワークで使用する設定ファイルは数種類存在し、 大きく分けてプロジェクト内で有効な設定と個別のアプリケーション毎に有効な設定の2種類があります。
・プロジェクト内共通で使用
SYL_PROJECT_DIR /config ディレクトリ
・個別のアプリケーション毎に設定可能
SYL_APP_DIR /config ディレクトリ
ファイル名 | プロジェクト | 個別APP | 内容 |
---|---|---|---|
actions.xml | × | ○ | アクションクラスに対して、実行するメソッドを定義します。 |
components.xml | ○ | × | プロジェクト内共通で使用するコンポーネントを定義します。 主にフレームワーク動作のコアとなるコンポーネントが定義されています。 |
defines.xml | ○ | △ | プロジェクト内/個別のアプリケーション内共通で使用する設定値を定義します。 個別のアプリケーションで定義した設定名が、プロジェクト内と同名の設定名があった場合、オーバーライド(上書き)されます。 |
filters.xml | △ | △ | プロジェクト内/個別のアプリケーション内共通で使用するフィルタの定義します。 個別のアプリケーションで定義したフィルタ名が、プロジェクト内と同名のフィルタ名があった場合、オーバーライド(上書き)されます。 |
layouts.xml | × | △ | 個別のアプリケーションで使用するレイアウトを定義します。 |
routers.xml | × | △ | 個別のアプリケーションで使用するURL/アクション/ビューのマッピングを定義します。 |
dao.xml | × | × | dao.phpコマンドラインユーティリティを使用して、DAOクラス群を生成する際の設定値を定義します。 |
○ … 必須
△ … 任意
× … 必要なし
これらの設定ファイルは、キャッシュの設定(デフォルトON)により初期アクセスのみパースされ、以降はキャッシュから読み込まれます。
設定ファイルを構成するディレクトリを示します。
+ [project dir] + apps + [app_name] + actions + config actions.xml (4) defines.xml (5) filters.xml (6) layouts.xml (7) routers.xml (8) + lib + templates + … + config components.xml (1) defines.xml (2) filters.xml (3) dao.xml (9) + lib + var
≪プロジェクト内で有効な設定≫
(1) components.xml - コンポーネント設定ファイル (*)
(2) defines.xml - 定数設定ファイル (*)
(3) filters.xml - フィルタ設定ファイル
(9) dao.xml - DAO設定ファイル
≪個別のアプリケーション毎に有効な設定≫
(4) actions.xml - アクション設定ファイル (*)
(5) defines.xml - 定数設定ファイル
(6) filters.xml - フィルタ設定ファイル
(7) layouts.xml - レイアウト設定ファイル
(8) routers.xml - ルーティング設定ファイル
(*) 必須ファイル
⇒ dao.xml
SyLフレームワーク内で定義される定数は、主に実行環境に関わる設定です。
定数名 | 型 | 内容 |
---|---|---|
SYL_DIR | string | SyLフレームワークベースディレクトリ。 例) /home/hoge/SyL |
SYL_FRAMEWORK_DIR | string | SyLフレームワークディレクトリ。 例) /home/hoge/SyL/framework |
SYL_PROJECT_DIR | string | プロジェクトディレクトリ。 例) /home/hoge/webapp |
SYL_PROJECT_CONFIG_DIR | string | プロジェクト内共通設定ファイルディレクトリ。 例) /home/hoge/webapp/config |
SYL_PROJECT_LIB_DIR | string | プロジェクト内共通ライブラリディレクトリ。 例) /home/hoge/webapp/lib |
SYL_APP_DIR | string | アプリケーションディレクトリ。 例) /home/hoge/webapp/apps/example |
SYL_APP_CONFIG_DIR | string | アプリケーション設定ファイルディレクトリ。 例) /home/hoge/webapp/apps/example/config |
SYL_APP_LIB_DIR | string | アプリケーションライブラリディレクトリ。 例) /home/hoge/webapp/apps/example/lib |
SYL_APP_CACHE_DIR | string | アプリケーションキャッシュディレクトリ。 例) /home/hoge/webapp/var/cache/example |
SYL_APP_LOG_DIR | string | アプリケーションログディレクトリ。 例) /home/hoge/webapp/var/logs/example |
定数名 | 型 | 内容 |
---|---|---|
SYL_ENCODE_INTERNAL | string | 内部エンコード。 例) UTF-8 |
定数名 | 型 | 内容 |
---|---|---|
SYL_LOG_NONE | int | ログレベルの1つ。ログを出力しないようにする。 例) 0 |
SYL_LOG_ERROR | int | ログレベルの1つ。致命的なエラーのみログを出力する。 例) 1 |
SYL_LOG_WARN | int | ログレベルの1つ。Warning 以上のログレベルをログ出力する。 例) 2 |
SYL_LOG_NOTICE | int | ログレベルの1つ。notice 以上のログレベルをログ出力する。 例) 8 |
SYL_LOG_INFO | int | ログレベルの1つ。インフォメーション以上のログレベルをログ出力する。 例) 1024 |
SYL_LOG_DEBUG | int | ログレベルの1つ。全てのログをログに出力する。 例) 6143 |
定数名 | 型 | 内容 |
---|---|---|
SYL_CACHE | bool | キャッシュの使用の有無。 例) true |
定数名 | 型 | 内容 |
---|---|---|
SYL_ENV | string | SyL フレームワークの実行環境 例) development |
SYL_VERSION | string | SyL フレームワークのバージョン 例) 0.8.4 |
SYL_APP_TYPE | string | アプリケーションタイプ。 例) web |
SYL_APP_NAME | string | アプリケーション名。 例) example |