ドキュメント
リリースカレンダー
リンク
SourceForge.jp SourceForge.JPへ
php.net PHP公式サイトへ
TOP  >  ドキュメント  >  構成

構成

3.1 ディレクトリ構成

 ディレクトリ構成は、大きく分けて3つに分かれます。

(1) SyLディレクトリ (SYL_DIR)
 SyLフレームワークのライブラリラリディレクトリ。SYL_DIR 定数として定義されます。

(2) プロジェクトディレクトリ (SYL_PROJECT_DIR)
 WEBアプリケーションを配置するディレクトリで、1つ以上のアプリケーションを含みます。 SYL_PROJECT_DIR 定数として定義されます。

(3) コンテンツディレクトリ
 ドキュメントルート以下の公開ディレクトリ。フロントコントローラファイルを配置します。

 通常ディレクトリ階層は、SyLのディレクトリ1つに対して、プロジェクトが複数存在し、さらにプロジェクトに対してアプリケーションが複数存在する構成になっています。 アプリケーションは、1つ以上のフロントコントローラから起動されるので、構成比は次のようになります。

SyL <= プロジェクト <= アプリケーション (<= フロントコントローラファイル)


SyLディレクトリ (SYL_DIR)

 SyLディレクトリは、アーカイブを解凍した直後だと下記のようになります。

SyL
    + bin        - コマンドディレクトリ
    + framework  - ライブラリ関連ディレクトリ
        + Core   - フレームワーク関連ライブラリディレクトリ
        + Lib    - 汎用ライブラリディレクトリ
    + opt        - フレームワークアプリケーションディレクトリ

 framework ディレクトリは、SyLフレームワークが使用するライブラリを格納されています。 framework/Core ディレクトリは、SyLフレームワーク必須のコアライブラリが格納され、 framework/Lib ディレクトリは、汎用的に使用できるライブラリが格納されています。

 bin ディレクトリには、SyLフレームワークに添付されているコマンドファイルが格納され、opt ディレクトリは、そのアプリケーションの実体が格納されています。


プロジェクトディレクトリ (SYL_PROJECT_DIR)

 プロジェクトを作成したときの初期ディレクトリ構成は下記のようになります。

+ [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フレームワークを起動する役割を担います。 起動パラメータに設定したアプリケーションにフレームワークの処理を紐付けます。 配置するディレクトリは、ドキュメントルート以下であれば、任意の階層に設置できます。

3.2 設定ファイル

 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)により初期アクセスのみパースされ、以降はキャッシュから読み込まれます。

3.3 設定ファイルの構成

 設定ファイルを構成するディレクトリを示します。

+ [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 - ルーティング設定ファイル

(*) 必須ファイル

3.3.1 actions.xml

 ⇒ actions.xml

3.3.2 components.xml

 ⇒ components.xml

3.3.3 defines.xml

 ⇒ defines.xml

3.3.4 filters.xml

 ⇒ filters.xml

3.3.5 layouts.xml

 ⇒ layouts.xml

3.3.6 routers.xml

 ⇒ routers.xml

3.3.7 dao.xml

 ⇒ dao.xml

3.4 SyLフレームワークで定義される定数

 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