11:04:33)&pgid();11月から入社した小沼です。現在研修中でPHPの勉強をしています。先週ぐらいから、PHPのフレームワークであるMapleを利用し、掲示板を作成しています。ある程度まで動作するようになったので、そこで得たノウハウなどをここに記述していきます。システム構成など設計情報はこちらに記述してあります。[#r4568579]インストールの方法は以下の2種類があります。詳細はリンク先を参照してください。[#g32e418f]インストールを行うためには、テンプレートエンジンのSmartyかHTML_Template_Flexyが必要です。どちらかがインストールされていないと、Mapleが動作しないどころか、Mapleのインストールすらできません。[#p59c3ce6]Mapleの開発においてはMapleコマンドを使用します。...といった形です。実行すると、雛形となるファイルが生成されます。生成されたファイルに対して開発者が変更を加えていきます。railsコマンドみたいなものです。[#pe1b5c6a]テンプレート(画面)からアクションクラス(moduleディレクトリ以下にできるクラス)のメンバ変数にアクセスすることができます。}テンプレート画面からは以下のように記述することで、値を取得できます。value="{$action.val1}">逆に、画面でサブミットした値をアクションクラスで取得するためには、テンプレート画面に以下のように記述します。value="">すると、アクションクラスのval1というメンバ変数に、サブミットされた値が設定されます。[#f7e20814]アクションチェーンというのは複数のアクションを連続して実行することです。今回作った掲示板では、新規投稿を行ったときに以下の二つのアクションをチェーンさせています。-submit(投稿されたデータをDBに登録するアクション)-display(DBに登録されているデータを表示するアクション)方法としては、チェーン元のアクションの遷移先に、チェーン先のアクションを設定するだけです。今回作った例では、submitアクションと同階層にあるmaple.iniを以下のように記述するだけです。"action:display以前どこかでアクションチェーンはあまり使用しないほうがいいという記述を呼んだ記憶があります(確か[[Strutsインアクション:http://www.amazon.co.jp/exec/obidos/ASIN/4797323442/casareal-22]])。理由としては、-アクションをチェーンさせたくなるのは、アクションにロジックが記述されてあるから。-そのため重複したコードを書かないために、アクションをチェーンさせる。-ロジックが適切にモジュール化されていれば、アクションをチェーンさせなくても、一つのアクション内で複数のロジックを呼び出すことで、重複するコードを書かなくても対応できるはず。いうことだったと思います。個人的にはアクションチェーンが有効な場合もあると思います。上のような観点もあるということで、チェーンで実装する前に、本当にそうするのが最善か、ロジックが適切に分割できていないのではないか、ということをもう一度検討した方がいいかもしれません。※個人的なことですが、私はアクションチェーンを実装している最中以下のエラーに苦しみました。db「DBクラスを再定義できません」ということでしょうか。結局require('DB.php')とやっている箇所をrequire_once('DB.php')とすることで直りました。アクションチェーンを使ったことで、一回の動作の中で2回require('DB.php')がおこなわれるようになったことが原因と思われます。requrieの存在価値がいまいち分かりません。[#u56cd196]入力項目に対しておこなうチェックもmaple.iniに記述します。今回の掲示板では新規投稿時に、必須チェックを行うように設定しました。maple.iniの内容です。required"nameやmessageと書かれているところが、入力チェック対象の項目です。これは画面上入力項目のname属性と対応します。次のrequiredと書かれているのが、チェック方法です。requiredの他に、maxLengthやdateなどがあります。1と書かれているところはストッパーです。1のほかに0が指定できます。ストッパーが1になっている入力チェックに引っかかった場合、以降のその項目に対する入力チェックをおこないません。requiredとなっているところはエラーメッセージです。エラーメッセージは以下のように記述することで、画面に表示させることができます。{/foreach}入力チェックについての詳細はここを参照してください。-http://kunit.jp/maple/wiki/index.php?reference%2Fjp#p8dd4622必須チェック以外にもmaxlenghtのチェックなどいろいろあるようです。Validateアクションを拡張することで、新しい入力チェックをカスタマイズすることもできるようです。