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の方でドキュメント化していきますので、よろしくお願いします。