3.1.0リリース

お待たせしました。日が変わって月曜日になってしまいましたが、3.1.0をリリースします。

いつもどおりプロジェクトサイトからダウンロードできますので、ぜひお試しください。今回の変更内容は以下の通りです。

  • componentクラスのファイル命名規則PEAR準拠を標準とした(今までのものも使用可能)
  • generatorをCLI版以外で動作させたときの表示を改善
  • FlexyViewを統合
  • フィルターをREQUEST_METHODによって発動する/しないをきりかえれるようにした
  • maple.iniにフィルターを登録する時に別名をつけて同じフィルターを複数登録可にした
  • テンプレートおよび設定ファイルをEUC-JP化し、文字コード設定を全てEUC-JP統一状態にした
  • FileUploadを大西さん作FileUpload2に置換え
  • exampleを3.1.0での変更に合わせて変更した
  • generator関連クラスの記述方法を3.1.0での変更に合わせて変更した
  • Validator_Matchの不具合対応
  • Maple_Generate_Usage.class.phpの修正
  • Maple_Generate_Util_File.class.phpの修正
  • Smartyのdefault_modifiersを使用し、使用しない場合にはエスケープされるようにした
  • コーディング規約をPEAR準拠に変更
  • Filter_Debugの追加
  • Actionクラスの命名規則変更(今までのものも使用可能)
  • ConvertフィルタおよびConverterの拡張
  • Filter/Conveter/Validaterのgenerator追加
  • ひらがなのみ/カタカナのみのValidator追加
  • SimpleViewでescape済みの配列を使えるようにした
  • SimpleViewのサンプル追加

3.1.0からSimpleViewというPHP自体をテンプレートとするものを入れてますので、Smartyをいれなくてもお試ししていただけます。合わせて、FlexyViewというHTML_Template_Flexyをつかうものもいれてますので、テンプレートとしてPHPファイル、SmartyFlexyと選択していだだけるようになりました。

圧縮ファイルを展開して、htdocsディレクトリをアクセス可能にすれば即お試しできますので、今まで面倒だなと思っていた方も一度お試しいただければと思います。

サンプルはデフォルトでDebugフィルターがONになってますので、Maple動作時の主要なオブジェクトの内容を見ることができます。こちらも合わせてお試しください。

お試しいただいて、何か問題があればコメント等いただければありがたいです。

3.0.2 ⇒ 3.1.0 の変更点

3.0.2以前のバージョンを使ってらっしゃる方で、3.1.0を使う場合以下のことにお気をつけください。

  • Actionクラス、Componentクラスのファイルの命名規則が変わっています。今までの命名規則でも使用可能ですが、新しい規約の方が短くてすむので是非新しい方をお使いください。(クラス自体の命名規則は変わっていません。なおgeneratorが出力するのは新しい規約の方です)
  • Viewフィルターに関して、Smartyのdefault_modifiersに「escape:'html'」がかかった状態になっています。なので、変数を記述すれば自動的にescape処理されます。ただし、foreachやsection等の引数として使用する際もescape処理が走りますので、escape処理が不必要な場合は「$foo|smarty:nodefaults」というように記述してください。自動escape処理が必要ないという方はmaple.inc.phpSMARTY_DEFAULT_MODIFIERS定数を空文字にしてください。SMARTY_DEFAULT_MODIFIERSを空文字にした場合、{$action.xxx}でアクセスできる値がescape済みのものになります。
  • Converterに関して複数変数に対してかかるように拡張した際に、複数変数を渡していたときのインターフェースを変更しました。今まではキーなしの普通の配列がConverterにわたるようになっていましたが、リクエストパラメータ名がキーとなるハッシュがConverterにわたるようになります。今まで作成されている複数変数対応のConverterがある場合には動作をご確認ください。(最新のconverter/Converter_Date.class.php等を参考にしてください)
  • Actionクラスに関して、setterを準備していなくてもプロパティに直接リクエストパラメータ等をインジェクションするようにしました。そのため、今までインジェクションが必要ない場合はsetterを準備しないという対応でしたが、今後はnull以外の値で初期化しておく(var $foo = ''; というような感じ)という形でお願いします。(null以外の値が入っている場合はインジェクションしないという仕様になっています)

3.1.0ではgeneratorを追加しましたので、ファイルの命名規則や配置はあまり気にしなくてもいいようになっています。それとsetter/getterを省略可能にした変更およびDebugフィルターを合わせればかなり開発効率はアップすると思いますので、是非活用ください。(で、なにか問題点や要望があれば、気軽にコメントをお願いします。)

その他の修正点ですが、Maple Wikiの方でドキュメント化していきますので、よろしくお願いします。