ADMは、データベースのテーブルを管理(CRUD)する画面を作成するコマンドライン機能と、
実際に管理(CRUD)を実現するための(SyLフレームワーク内での)総称です。
テンプレートはdefault(通常PHP)とSmartyに対応しています。
下記のDBに対応しています。ただし、対応しているカラム型は、文字列型/数値型/日付型に限定されます。
ADM対応DB |
---|
MySQL (4.1以降) |
PostgreSQL (7.3以降) |
ADMを使用するには、事前に作成したSyLプロジェクトに対して、下記に4つの手順を行います。
(1) ADMアプリケーションを作成するプロジェクトのDB接続文字列の設定を行う
(2) scaffold.php コマンドにより、ベースとなるファイルを作成する
(3) 作成されたベースファイルを確認し、表示できるかアクセスする
(4) 作成されたベースファイルを適宜修正し、表示項目をカスタマイズする
ここでは、例として
・SyLディレクトリ: /home/hoge/SyL
・プロジェクトディレクトリ: /home/hoge/webapp
・アプリケーション名: example
・コントローラ起動ファイル: /home/hoge/public_html/example.php
で進めて行きます。
(1) ADMアプリケーションを作成するプロジェクトのDB接続文字列の設定を行う
プロジェクトディレクトリ内の設定ファイルのDB接続文字列を編集します。
設定ファイル: /home/hoge/webapp/config/defines.xml
編集内容: SYL_DB_DSN 設定値(詳細は7.1 DB参照)
(2) adm コマンドにより、ベースとなるファイルを作成する
SyLアーカイブ中のに添付されている bin ディレクトリに移動します。
scaffold.php を使用してベースファイルを作成します。
※ scaffold.php は、SyLコマンドラインフレームワークを使用しています。CLI版のみの対応となり、CGI版では動作しません。また、事前にphp にパスを通しておいてください。
$ cd /home/hoge/SyL/bin $ php scaffold.php adm -d /home/hoge/webapp -w example -a test1 -c /home/hoge/public_html/example.php -t test_table
[ コマンド参考 ⇒ 9.2 scaffold.php - ADMアプリケーション構築ツール ]
コマンドが成功すると、下記にファイルが作成されます。
・アクションフォーム
・DAOテーブルクラス
・アクションファイル (※-a アクションディレクトリ が指定された場合)
・テンプレートファイル (※-a アクションディレクトリ が指定された場合)
・cssディレクトリとcssファイル (※-c コントローラ起動ファイル が指定された場合)
・imagesディレクトリとimageファイル (※-c コントローラファイル が指定された場合)
/home /hoge /public_html /css /images example.php (※コントローラ起動ファイル) /SyL /bin scaffold.php (※実行ファイル) /webapp /app /example /actions /test1 Del.php Fin.php Index.php Lst.php New.php Upd.php Vew.php /templates /test1 Fin.html Lst.html New.html Upd.html Vew.html /config defines.xml (※DB接続文字列 設定ファイル) /lib /Adm /Forms Test_table.php (※アクションフォームクラス) /Tables Test_table.php (※DAO用テーブルクラス) ※ 赤字が新規作成されたディレクトリ/ファイル
(3) 作成されたベースファイルを確認し、表示できるかアクセスする
(2) の作成が完了したら、作成された「Lst.php」にアクセスして、表示できるか確認します。
http://(userserver)/example.php/(action_dir)/lst.html
下記のような画面が表示されたら、インストール完了です。
(※下記画面はデータが1レコードも登録されていない場合です)
(4) 作成されたベースファイルを適宜修正し、表示項目をカスタマイズする
一通りの動作確認が終了したら、目的に合うように一覧や詳細画面に対する表示情報を修正/削除します。
表示に関する修正は、作成されたテンプレートファイルを直接修正することでも可能ですが、 ある程度は、作成されたアクションフォームクラスのプロパティを編集することで修正することも可能です。
// アクションフォームクラス /home/hoge/webapp/lib/Adm/Forms/Test_table.php
アクションフォームクラスの大まかな内容は、下記のようになります。
class AdmFormsTest_table extends SyL_ActionForm { // テーブルクラスの配列 var $table_classes = array ( 'a' => 'Adm.Tables.Test_table', ); // テーブルクラスの関連配列 var $table_relations = array(); // メインメンテナンステーブル名 var $maintenance_table = 'a'; // 構成定義設定配列 var $structs_config = array( 'title' => 'test_table管理', 'default_sort' => array ('a.test_id.ASC'), 'default_search_view' => false, 'page_records' => 20, 'link_range' => 9, 'key_name' => 'key', 'view_confirm' => true, 'view_fin' => true, 'view_alert' => false, 'enable_new' => true, 'enable_upd' => true, 'enable_del' => true, 'enable_vew' => true, 'enable_sch' => true ); // フォーム定義要素配列 var $elements_config = array ( 'TEST_ID' => array ( 'alias' => 'a', 'type' => 'text', 'name' => 'test_id', 'attributes' => array ( 'size' => '30', ), 'validate' => array ( 'require' => array ( 'message' => '{name}は必須です', ), 'length' => array ( 'message' => '{name}は{max}文字(バイト)以内で入力してください', 'parameters' => array ( 'max' => '30', ), ), ), 'sort_list' => 1, 'sort_detail' => 1, ), 'TEST_NAME' => ...
ADM管理画面の構成に関する設定(表示項目に関わらない設定)は、 コード内の $structs_config 配列で行います。
キー名 | 型 | 内容 | 補足 |
---|---|---|---|
title | string | 管理サブタイトル | |
default_sort | array | 一覧画面でのデフォルトソート順 | |
default_search_view | bool | 一覧画面にデフォルトで検索フォームを表示するフラグ | |
page_records | int | 一覧画面の表示件数 | |
link_range | int | 一覧画面のページリンク最大表示数 | 奇数値で設定する |
key_name | string | 画面遷移時のパラメータ名 | |
view_confirm | bool | 確認画面表示判定フラグ | |
view_fin | bool | 完了画面表示判定フラグ | |
view_alert | bool | 確認アラート表示判定フラグ | |
enable_lst | bool | 一覧表示機能使用フラグ | |
enable_new | bool | 新規登録機能使用フラグ | |
enable_upd | bool | 更新機能使用フラグ | |
enable_del | bool | 削除機能使用フラグ | |
enable_vew | bool | 詳細表示使用フラグ | |
enable_sch | bool | 検索使用フラグ |
管理画面の表示項目に関する設定は、コード内の $elements_config 配列で項目毎に行います。
キー名 | 型 | 内容 | ADM 拡張 |
補足 |
---|---|---|---|---|
alias | string | テーブル別名 | ○ | |
type | string | フォーム要素名 | ||
name | string | 表示項目名 | ||
attributes | array | フォーム要素の属性 | ||
validate | array | バリデーション | ||
data_source | array | 関連マスタデータの取得元情報 | ○ | |
sort_list | int | 一覧項目の順(左から右へ) | ○ | |
sort_detail | int | 詳細項目の順(左から右、上から下へ) | ○ | |
search | bool | 検索項目表示フラグ | ○ | |
cols | int | 新規登録/更新/詳細表示項目の列表示 | ○ | 1 (1行2列) 2 (1行1列) |
read_only_new | bool | 新規登録画面の編集不可フラグ | ○ | |
read_only_upd | bool | 更新画面の編集不可フラグ | ○ | |
default_new | string array |
新規登録時のデフォルト値 | ○ | |
default_upd | string array |
更新時のデフォルト値 | ○ | |
display_list | bool | 一覧画面表示フラグ | ○ | |
display_detail | bool | 新規登録/更新/詳細表示画面表示フラグ | ○ | |
display_limit_list | int | 一覧表示文字数制限 | ○ | 指定文字数を超える場合、末尾に ... が表示される。 |