CommentsINTER-MediatorというPHPアプリケーションフレームワークがあります。HTMLからのDBカラム指定でデータが呼び出せたり、Javascriptの制御でDB操作ができたりなど、なかなか重宝するフレームワークです。以前はCodeigniterにIMを統合するという記事を書きましたが、今回はYiiに統合をしてみます。Yii?PHPのフレームワークといえば?というところで最初にあがってくるようなフレームワークではないですが、柔軟で高速で、かつ、スカッフォールディングなどベースの生成が頭がいいので、気に入って利用しています。他方CakePHPほどの「なんでも感」はないので、PHPerとしての「地力」が試されるフレームワークであると思っています。やってみましょうこれよりさきはMySQLへの接続を前提としてお話をすすめます。IMのファイルは、yiiのアプリケーションディレクトリ(通常であればprotected)に配置します。/protected/Inter-Mediator/...のような感じですね。何かコマンドを打つ必要はありません。別ファイルに移します。'/database.php'とします。'utf8',);とします。main.phpのほうには、Yiiのセッション機能を使えるようにするために、加筆をします。'/database.php',//セッションを追加'session'=>array(//追加'class'=>'CDbHttpSession',//追加'sessionTableName'=>'sessions',//追加'connectionID'=>'db',//追加),先ほどのDBの設定の部分の下に、セッションを利用可能にしておきます。下記に説明するヘルパを自動読み込みさせるために、サードパーティーライブラリのフォルダを自動ロードするように設定します。'import'=>array('application.models.*','application.components.*',),とします。'import'=>array('application.models.*','application.components.*','application.vendor.*',),に書き換えます。設定ファイルの書き換えは以上。続いて、IMの設定をラクにするヘルパファイルを作ります。----------------------------------------------------}と書いて起きます。YiiBase::import('application.Inter-Mediator.*');で、IMのフォルダ内をオートロードの対象にしておきます。IM自体の改造IM自体の改造が必要です。INTER-Mediator.phpを改造します。'autoload'));とします。これは、先のImHerlper.phpでIMのディレクトリ内をオートロードの対象にしたわけですが、PHP拡張である「Crypt_RSA」などのクラスの存在拡張をチェックすると、自動的にファイルを探しに知ってしまうのを回避しています。続いて、GenerateJSCode.phpを改造します。'"';としておきます。IMのコードを見ると、$callURLがセットされていれば、このURLを優先して利用する仕組みになっているようですので、globalにして、先のImHelper.php内でコールするURLを指定できるように改造しています。){にしておいたほうが賢明かもしれません。次にIMの処理を担うコントローラーファイルを設置します。----------------------------------------------------}と保存しておきます。アクセス状況によってはアクセスルールを適切に設定したほうがよいでしょう。ImHelper::getUrl($ds,$def,$ds2);とすれば、$urlにIMの設定を呼び出すための一時URLが発行されるため、viewの中で表示するなり、clientScriptクラスに登録するなりすればOKImHelper::getUrl()の引数はIM_Entry()の引数に引き当てられます。DBへの接続設定はImHelperで自動的に割り当てられるので、不要です。これで、開発高速化!現場からは以上です。Commentsさてさて今回もまたまたINTER-Mediatorですよ。本当にseezooとINTER-Mediatorに感謝です。'フィールド名1は郵便番号形式で書いてください。'),),のように書きます。「rule」の項目がjavascript中でeval()で評価され、falseが返されれば「message」の項目がalertされるという仕組みで動いています。実にシンプルな仕組みです。大体バリデーションでやりたいことって決まってますよね。何か入力しないとダメとか、数字以外の文字がはいってたらダメとか。その辺を予めエラーメッセージと合わせて、ある程度自動化してくれるPHPクラスを作りました。----------------------------------------------------}▲はい。functionで、メソッドを追加すれば、バリデーションのパターンは増やせます。JSとPHPが理解できる人なら、バリデーションメソッドの内容は何をしているかわかるでしょう。im_validation::get_validation_def($rules);とすると、$validationにINTER-Mediator用のバリデーション定義が返ります。$rulesでは、フィールド名、その名前、実行したいバリデーションメソッド名を配列でそれぞれ指定してやればOKです。役に立つんじゃないかなーと。伊藤清徳の垂直落下式ムーンサルトプレス。