ディレクトリ構成

MVC+F

ChimpanzeeはMVCを意識したアプリケーションフレームワークです。MVCとはM(モデル)、V(ビュー)、C(コントローラ)の略で、アプリケーションを以下で説明するモデル、ビュー、コントローラの3つの要素に分けてアプリケーションを開発する技法(構造)です。

モデルはデータ(ベース)を、ビューは画面表示を、コントローラは処理系(その中でデータベース処理や画面表示処理を呼び出す)を制御します。これらを明確に分離することで変更に対応しやすくなる、プログラムの再利用性が向上する、開発の分業が容易になるなどのメリットが生まれるのです。

Chimpanzeeではこれに加えて新たにクライアントからの入力(リクエスト)を制御する「F=フォーム」という概念を採り入れ、これまでコントローラで入力の種類(テキストボックス、チェックボックス、...)に応じてプログラムを書き分けるなど都度コーディングしていたフォームの処理も自動化しました。

アーキテクチャ

フレームワーク

Chimpanzee本体のディレクトリ構成とファイル群です。

Chimpanzee-Vx_xx = (CZ_root)
 |
 +-- extensions         // 開発者が自作したクラスファイル群を格納するディレクトリです。
 |    |                 // __autoloadで読み込まれます。
 |    +-- ...
 |
 +-- private            // プライベートクラスで、開発者はこの中を直接参照することはありません。
 |    +-- cores         // 実際に処理を行うライブラリ群を格納します。
 |    |    +-- ...
 |    +-- static        // coresのライブラリのクラスプロパティを保存するクラスファイル群を格納します。
 |    |    +-- ...
 |    +-- Base.php      // すべてのクラスの基底クラスファイルで、CZ.phpを参照しています。
 |    +-- CZCore.php    // フレームワークのコアとなるプログラムです。
 |    +-- ObjCtrl.php   // インスタンスの管理プログラムです。
 |
 +-- public             // パブリッククラスで、開発者はこの中をクラスを参照してアプリケーションを開発します。
 |    +-- extends       // 開発者の作成するクラスが継承する元となる基底クラス群を格納します。
 |    |    +-- ...
 |    +-- modules       // モジュールのクラスファイル群を格納します。
 |    |    +-- ...
 |    +-- Exception.php // 例外処理に使用するプログラムです。
 |    +-- Obj.php       // 外部プログラムからChimpanzeeのオブジェクトを参照する際に使用するプログラムです。
 |
 +-- skelton            // プロジェクトの基本構成を格納したディレクトリです。
 |    +-- ...           // 新しくプロジェクトを作る(アプリケーションを開発する)際はこのディレクトリをコピーします。
 |
 +-- template           // アプリケーションのテンプレートディレクトリです。
 |    +-- ...           // CRUDやログインなど汎用的な処理のコントローラが含まれています。
 |                      // 新しく処理を実装する際はこのソースをコピーすると開発が楽です。
 |
 +-- Chimpanzee.php     // フレームワークを実行するファイルです。フロントコントローラから直接呼び出すファイルです。
 +-- ChimpanzeeImageServer.php
 |                      // フレームワークで画像処理を実行するファイルです。
 |                      // フロントコントローラで画像を表示する際に直接呼び出すファイルです。
 |
 +-- CZ.php             // Chimpanzeeの開発管理に使用しているファイルです。
 |                      // 削除するとChimpanzeeが動作しなくなるので削除しないでください。
 +-- CZImageServer.php  // Chimpanzeeの開発管理に使用しているファイルです。
                        // 削除するとChimpanzeeが動作しなくなるので削除しないでください。

プロジェクト

フレームワークを利用して作るアプリケーションのディレクトリとファイル群ですフレームワーク本体とは独立したディレクトリで運用可能です。プロジェクトは1個のアプリケーションから成る場合も複数のアプリケーション(一般画面+管理画面など)から成る場合もあります。さらにその複数のアプリケーションの中で共通機能(モデルなど)をまとめて実装することも可能です。

(project_root)          // プロジェクトのルートディレクトリです。以下の階層を満たしていればどこに配置しても結構です。
 |
 +-- applications       // アプリケーション群を配置します。
 |    +-- application   // 「application」という一つのアプリケーションのディレクトリです。
 |    |    +-- ...      // 以下の構造は後述します。
 |    +-- app01         // 「app01」という一つのアプリケーションのディレクトリです。
 |    |    +-- ...
 |    +-- _common       // 複数のアプリケーションに共通して実装するファイルを配置します。
 |         +-- ...      // 以下の構造は「application」と同じで、共通処理のあるファイルを
 |                      // 個別のアプリケーションではなくこちらのディレクトリ内の対応する場所に
 |                      // 配置すれば同じコードを複数のアプリケーションで重複して書かなくてもよくなります。
 |
 +-- images (777)       // フレームワークによって生成された画像ファイルを格納します。パーミッションは「777」にする必要があります。
 +-- mail_templates     // モジュール「Mail」で送信するメールのテンプレートファイルを配置します。
 +-- tmp (777)          // フレームワークがデフォルトで使用する作業用ディレクトリです。パーミッションは「777」にする必要があります。
                        // この作業用ディレクトリの場所は設定によって変更することができます。

プロジェクトディレクトリのテンプレートがChimpanzee直下のtemplateにありますので、通常はこれをコピーして使うことができます。applicationsの中には共通ファイルとアプリケーションテンプレートとしてapplicationsが格納されています。

アプリケーション

プロジェクトの中に配置する個別のアプリケーションのディレクトリとファイル群です。

(app_root)              // アプリケーションのルートディレクトリです。
 |
 +-- configs            // 設定ファイル群を配置します。
 |    +-- Db.php        // データベースの設定ファイルです。
 |    :
 |
 +-- ctrls              // コントローラのクラスファイル群を配置します。
 |    +-- Xxx.php       // コントローラ「xxx」のクラスファイルです。
 |    :
 |
 +-- forms              // フォームのクラスファイル群を配置します。
 |    +-- Xxx.php       // フォーム「xxx」のクラスファイルです。
 |    :
 |
 +-- funcs              // ユーザ定義関数のクラスファイル群を配置します。
 |    +-- Xxx.php       // ユーザ定義関数クラス「xxx」のクラスファイルです。
 |    :
 |
 +-- libs               // 外部ライブラリ群を配置します(__autoloadで読み込まれます)。
 |    +-- xxx           // ライブラリ「xxx」のクラスファイル群です。
 |    |    + ...
 |    +-- yyy.php       // ライブラリ「yyy」のクラスファイルです。
 |    :
 |
 +-- models             // モデルのクラスファイル群を配置します。
 |    +-- Xxx.php       // モデル「xxx」のクラスファイルです。
 |    :
 |
 +-- tables             // 定数テーブルのクラスファイル群を配置します。
 |    +-- Xxx.php       // 定数テーブル「xxx」のクラスファイルです。
 |    :
 |
 +-- views              // ビューのテンプレートファイル群を配置します。
      +-- _common       // 複数のコントローラに共通するテンプレートファイル群を配置します。
      |    +-- delete               // アクショングループ「delete」のテンプレートファイル群を配置します。
      |    |    +-- confirm.html    // アクショングループ「delete」のアクション「confirm」のテンプレートファイルです。
      |    |    :
      |    |
      |    +-- detail               // アクショングループ「detail」のテンプレートファイル群を配置します。
      |    |    +-- ...
      |    |
      |    +-- list                 // アクショングループ「list」のテンプレートファイル群を配置します。
      |    |    +-- ...
      |    |
      |    +-- regist               // アクショングループ「regist」のテンプレートファイル群を配置します。
      |    |    +-- ...
      |    |
      |    +-- update               // アクショングループ「update」のテンプレートファイル群を配置します。
      |    |    +-- ...
      |    |
      |    +-- header.html          // すべてのビューで共通して読み込まれるヘッダのHTMLファイルです。
      |    +-- header.html          // すべてのビューで共通して読み込まれるヘッダのHTMLファイルです。
      |    +-- footer.html          // すべてのビューで共通して読み込まれるフッタのHTMLファイルです。
      |
      +-- home                      // コントローラ「home」のテンプレートファイル群です。
      |    +-- ...                  // 以下の構造は「_common」と同様になります。
      |
      +-- xxx                       // コントローラ「xxx」のテンプレートファイル群です。
      |    +-- ...                  // 以下の構造は「_common」と同様になります。
      :

Web公開するファイル

Webに公開する、クライアントからのリクエストを受けるファイルです。プログラムのフロントコントローラ、画像やCSS、Javascriptのスクリプトファイルなどになります。フレームワークやアプリケーションとは違って外部からアクセス可能なディレクトリに配置します。

(doc_root)
 +-- css
 |    +-- ...
 |
 +-- images
 |    +-- ...
 |
 +-- js
 |    +-- ...
 |
 +-- index.php          // フロントコントローラ:クライアントからのリクエストを受け付けるスクリプト
 :

index.phpはサブディレクトリに置くことも可能です

前後のページ

ページトップへ