ドキュメント
リリースカレンダー
リンク
SourceForge.jp SourceForge.JPへ
php.net PHP公式サイトへ
TOP  >  ドキュメント > 機能(フレームワーク依存)  >  ADM (汎用データ管理)

ADM (汎用データ管理)

 ADMは、データベースのテーブルを管理(CRUD)する画面を作成するコマンドライン機能と、 実際に管理(CRUD)を実現するための(SyLフレームワーク内での)総称です。
テンプレートはdefault(通常PHP)とSmartyに対応しています。

1. ADM対応DB

 下記のDBに対応しています。ただし、対応しているカラム型は、文字列型/数値型/日付型に限定されます。

ADM対応DB
MySQL (4.1以降)
PostgreSQL (7.3以降)

2. ADMの設定

 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レコードも登録されていない場合です)

ADM管理初期画面

(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' => 
    ...

3. 構成に関する設定

 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 検索使用フラグ  

4. 表示項目に関する設定

 管理画面の表示項目に関する設定は、コード内の $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 一覧表示文字数制限 指定文字数を超える場合、末尾に ... が表示される。