ドキュメント
リリースカレンダー
リンク
SourceForge.jp SourceForge.JPへ
php.net PHP公式サイトへ
TOP  >  ドキュメント  >  コマンドラインユーティリティ > ADMアプリケーション構築ツール

ADMアプリケーション構築ツール

 DBを管理するインターフェイス(画面)群を作成するツールです。
このツールで使用して、対象テーブルの管理(CRUD)を行う画面を短時間で作成できます。 また、設定ファイルやテンプレートの編集を行うことで、柔軟にカスタマイズも可能です。

 ADM管理は、テーブルのメタデータ自体を管理する関係上、対象テーブルの列の追加/削除や型の変更を行った場合は、設定ファイルを適切に修正する必要があります。

1. コマンド仕様

php scaffold.php --help
Usage:
  php scaffold.php adm -d <dir> -w <name> [-a <dir>] [-c <file>]
-t <table> [-s]
  php scaffold.php base -d <dir> -w <name> -c <file> -u <url>
  php scaffold.php table -d <dir> [-w <name>] [-n <name>] [-p <name>]
-t <table>
  php scaffold.php form -d <dir> [-w <name>] -f <name> [-n <name>]
[-p <name>] -t <table>
  php scaffold.php [option]

Options:
  -d <dir>   project directory
  -w <name>  application name
  -a <dir>   action directory for Adm Application (default: null)
  -c <file>  controller file (default: null)
  -t <table> database table name
  -u <url>   controller url
  -f <name>  form class name. require SyL_Loader naming rule.
  -n <name>  table class name. require SyL_Loader naming rule.
(default: table name)
  -p <name>  class prefix name. SyL_Loader naming rule.
(default: null)
  -h         show this help, then exit
  -v         output version information, then exit

引数仕様

コマンドタイプ 内容
adm ADMアプリケーション全体を作成します。
base ADMアプリケーションの管理を行う基盤を作成します。
table ADMアプリケーションが使用するテーブルクラスを作成します。
form ADMアプリケーションが使用するフォームクラスを作成します。

オプション 必須 内容
-d <dir> プロジェクトディレクトリ
-w <name> アプリケーション名
-a <dir>   アクションディレクトリ
指定したディレクトリにアクションファイルとテンプレートファイルが作成されます。 デフォルトでは、アクション/テンプレート自体作成されません。
-c <file>   コントローラファイル
コントローラファイルと同階層に images と css ディレクトリ(とファイル群)が作成されます。 デフォルトでは、images と css ディレクトリは作成されません。
-t <table>   テーブル名
-u <url>   ADM管理アプリケーションが使用するコントローラのURLを指定します。
-f <name>   作成するフォームクラス名。SyL_Loader::userLib メソッドで特定できる名称。 form のみ有効。
詳細は、SyL_Loaderのインクルードルール 参照
-n <name>   作成するテーブルクラス名。SyL_Loader::userLib メソッドで特定できる名称。 table のみ有効。
詳細は、SyL_Loaderのインクルードルール 参照
-p <name>   クラス名の接頭辞。 form、table のみ有効。
-h   上記のような使用方法が表示されます。コマンド単体で使用します。
-v   バージョン情報が表示されます。コマンド単体で使用します。

2. 事前準備

このユーティリティを使用するには、事前に下記準備が必要です。
(1) SyLプロジェクトの作成
(2) DB接続設定

(1) SyLプロジェクトの作成

 ADMアプリケーションは、SyLアプリケーション内に作成されるため、事前にSyLプロジェクトを作成する必要があります。 SyLプロジェクトを作成するには、setup.php コマンドラインユーティリティを使用して作成します。

setup.php コマンドラインユーティリティ 参照

(2) DB接続設定

 対象のデータベースに接続してテーブルのメタデータを取得するには、接続文字列の設定が必要です。(1) で作成したプロジェクト内の設定ファイルを編集してください。

{SYL_PROJECT_DIR}/config/defines.xml
または、
{SYL_PROJECT_DIR}/apps/{SYL_APP_NAME}/config/defines.xml

※ {SYL_PROJECT_DIR} - プロジェクトディレクトリ
※ {SYL_APP_NAME} - アプリケーション名

 下記の箇所を編集します。(アプリケーションディレクトリの設定ファイルの場合は、追記になります)

...
  <!--
    DB接続文字列
    [dbtype]:dbname=[dbname];host=[hostname];port=[port];user=[username];
passwd=[password];client_encode=[client_encode];persistent=[persistent]
  -->
  <define name="SYL_DB_DSN"></define>
...

編集例)
  <define name="SYL_DB_DSN">pgsql:dbname=***;host=localhost;port=5432;
user=***;passwd=***;client_encode=EUC-JP</define>

3. コマンド実行

このユーティリティは、下記4つの新規作成ができます。
(1) ADMアプリケーション全体
(2) ADM管理基盤
(3) テーブルクラス
(4) フォームクラス

(1) ADMアプリケーション全体

 ADMアプリケーション群を指定のプロジェクト内に作成します。

$ php scaffold.php adm -d ~/sample_project -w sample -t syl_zip
-a /admapps/zip/ -c ../../htdocs/admapps/sample.php
  project application directory checking...
  project lib table directory checking...
  project lib form directory checking...
  images or css directory checking...
  project config getting...
  table schema scaning...
  valiables setting...
  create directories...
  create files...
  table template file ../../SyL/opt/adm/var/templates/Table.php
    -> generating table file ~/sample_project/lib/Adm/Tables
/Syl_zip.php
  form template file ../../SyL/opt/adm/var/templates/Form.php
    -> generating form file ~/sample_project/lib/Adm/Forms/Syl_zip.php
  action template file ../../SyL/opt/adm/var/templates/actions
/Index.php
    -> generating form file ~/sample_project/apps/sample/actions
/Admapps/Zip/Index.php
...
  template template file ../../SyL/opt/adm/var/templates/templates
/default/Lst.html
    -> generating form file ~/sample_project/apps/sample/templates
/Admapps/Zip/Lst.html
...
  copying file ../../SyL/opt/adm/var/templates/images/icon_subtitle.gif
    -> ../../htdocs/admapps/images/icon_subtitle.gif
...

--- Result ---
  [project directory] ~/sample_project
  [action directory] ~/sample_project/apps/sample/actions/Admapps/Zip
  [template directory] ~/sample_project/apps/sample/templates/Admapps
/Zip
  [table name] syl_zip
  [form class] ~/sample_project/lib/Adm/Forms/Syl_zip.php
  [table class] ~/sample_project/lib/Adm/Tables/Syl_zip.php
  [images directory] ../../htdocs/admapps/images
  [css directory] ../../htdocs/admapps/css
--- URL ---
  http://(hostname)/(controller_file)/admapps/zip/
$

 -c で指定しているコントローラファイルは、対象のアプリケーションの既存コントローラファイルを指定します。 実際には、カレントのディレクトリに images と css のディレクトリ(とファイル群)を作成します。

 Smarty 用のテンプレートを作成するには、-s を指定します。(デフォルトは、通常のPHP記述のテンプレート)

 ADMアプリケーションを作成した後は、コマンド実行の最後に表示されているように、対象のアプリケーションのコントローラファイルに、指定したアクションディレクトリの情報でアクセスすると、初期画面が表示されます。

(2) ADM管理基盤

 ADMアプリケーションを管理する基盤を作成します。このコマンドタイプを実行すると、アプリケーション config ディレクトリにADM管理設定ファイル adms.xml が作成されます。 以降、同じアプリケーション内に(1)のADMアプリケーションを作成する度に、自動で設定ファイルに追加されます。

$ php scaffold.php base -d ~/sample_project -w sample -u 
/admapps/admtest.php -c ~/htdocs/admapps/admtest.php
  parameters checking...
  project application directory checking...
  images or css directory checking...
  create directories...
  create files...
  action template file ../../SyL/opt/scaffold/var/templates/Index.php
    -> generating action file ~/sample_project/apps/admtest/actions
/Index.php
  template template file ../../SyL/opt/scaffold/var/templates/Index.html
    -> generating template file ~/sample_project/apps/admtest/templates
/Index.html
  template config file ../../SyL/opt/scaffold/var/templates/config
/adms.xml
    -> generating config file ~/sample_project/apps/admtest/config
/adms.xml
  copying file ../../SyL/opt/scaffold/var/templates/images
/icon_sort_desc.gif
    -> ~/htdocs/admapps/images/icon_sort_desc.gif
  copying file ../../SyL/opt/scaffold/var/templates/images
/icon_sort_asc.gif
    -> ~/htdocs/admapps/images/icon_sort_asc.gif
  copying file ../../SyL/opt/scaffold/var/templates/images
/icon_subtitle.gif
    -> ~/htdocs/admapps/images/icon_subtitle.gif
  copying file ../../SyL/opt/scaffold/var/templates/images
/icon_upd.gif
    -> ~/htdocs/admapps/images/icon_upd.gif
  copying file ../../SyL/opt/scaffold/var/templates/images
/icon_alert.gif
    -> ~/htdocs/admapps/images/icon_alert.gif
  copying file ../../SyL/opt/scaffold/var/templates/images
/icon_del.gif
    -> ~/htdocs/admapps/images/icon_del.gif
  copying file ../../SyL/opt/scaffold/var/templates/images
/icon_doc.gif
    -> ~/htdocs/admapps/images/icon_doc.gif
  copying file ../../SyL/opt/scaffold/var/templates/css/adm.css
    -> ~/htdocs/admapps/css/adm.css
  copying file ../../SyL/opt/scaffold/var/templates/js/adm.js
    -> ~/htdocs/admapps/js/adm.js

--- Result ---
  [project directory] ~/sample_project/
  [application directory] ~/sample_project/apps/admtest
  [config file] ~/sample_project/apps/admtest/config/adms.xml
  [images directory] ~/htdocs/admapps/images
  [css directory] ~/htdocs/admapps/css
  [js directory] ~/htdocs/admapps/js

  start application -> access contoroller file.
$

 ADM管理基盤を作成した後は、対象のアプリケーションのコントローラファイルにアクセスすることにより、ADMアプリケーション管理の一覧画面が表示されます。 (初期作成時は、ADMアプリケーションが登録されていない状態です)

(3) テーブルクラス

 テーブルクラスを個別に使用する場合に作成します。

$ php scaffold.php table -d ~/sample_project -n EuryL.Table.El_application
-t el_application
  parameters checking...
  project config checking...
  project config `SYL_DB_DSN' getting...
  table schema scaning...
  create file...
  table template file  ../../SyL/opt/scaffold/var/
templates/Table.php
    -> creating table class...
    -> generating table class file... ~/sample_project/lib/EuryL
/Table/EuryLTableEl_application.php

--- Result ---
  [project directory] ~/sample_project
  [table name] el_application
  [table class] ~/sample_project/lib/EuryL/Table
/EuryLTableEl_application.php

(4) フォームクラス

 フォームクラスを個別に使用する場合に作成します。

$php scaffold.php form -d ~/sample_project -f EuryL.Form.User
-n EuryL.Table.El_user -t el_user
  parameters checking...
  project config checking...
  project config `SYL_DB_DSN' getting...
  table schema scaning...
  create file...
  form template file: ../../SyL/opt/scaffold/var/templates/Form.php
    -> creating form class...
    -> generating form class file... ~/sample_project/lib/EuryL/Form/
EuryLFormUserTest.php

--- Result ---
  [project directory] ~/sample_project
  [table name] el_user
  [table class] ~/sample_project/lib/EuryL/Table/EuryLTableEl_user.php
  [form class] ~/sample_project/lib/EuryL/Form/EuryLFormUserTest.php