トップページ > リリース > CharcoalPHP Ver.2.20.0リリース

CharcoalPHP Ver.2.20.0リリース

CharcoalPHP Ver.2.20.0をリリースしました。

こちらからダウンロードできます。download

今回の変更点は

  1. パフォーマンスの改善
  2. コアのリファクタリング
  3. sandboxの追加
  4. registryの追加
  5. model generatorの追加
  6. Weak APIの実装
  7. 例外ハンドラの変更

になります。

3. sandboxの追加

 フレームワーク起動時にサンドボックス(sandbox)を指定できるようになりました。これは、主にデバッグ/テスト向けの機能で、Javaのコンテナのように機能します。具体的には設定(レジストリ)/コードベース(ソースコード)/コンテナをセットで管理し、それを実行時に切り替えることで設定やソースコードを差し替えます。

 サンドボックスを使用することでテストケースの設定を行いやすくなる他、今後、オブジェクトのメソッドインターセプタなどを実行時に組み込むAOPコンテナの実装が予定されています。

4. registryの追加

 設定ファイルへのアクセスはこれまでCharcoal_ConfigLoaderクラス内から直接ファイルにアクセスしていましたが、今回のリリースからsandboxに設定されたregistry経由でアクセスするようになります。このため、実行時にファイル以外の設定値データベースを切り替えることができるようになりました。この変更により、主にオブジェクトの単体テストが行いやすくなります。

5. model generatorの追加

 SmartGateway経由でデータベースにアクセスする場合はテーブル1つにつきそれぞれに対応するテーブルモデルクラス、テーブルDTOクラスの2つのクラスファイルおよびテーブルモデル設定ファイルを作成する必要がありますが、これまで手動でしなければならなかったこれらファイルの生成作業を下記のようにコマンド1つで自動生成することができるようになりました。

詳しくはこちらをご覧ください。

6. Weak APIの実装

 前回のリリースで導入された「Weak API」が多くのフレームワーククラスで実装されました。特にアプリケーション作成者にとって影響があるのは下記のクラス/インタフェースです。

7. 例外ハンドラの変更

 例外ハンドラのインタフェースであるCharcoal_IExceptionHandlerからhandleFrameworkExceptionメソッドが削除されました。ユーザが作成する例外ハンドラではhandleExceptionメソッドだけを実装してください。handleFrameworkExceptionを実装してもフレームワークからは呼び出されなくなります。

 また、Charcoal_ITaskインタフェースはCharcoal_IExceptionHandlerを継承するようになり、タスク内のprocessEventsメソッド内で例外が発生した場合、タスクのhandleExceptionメソッドが呼ばれるようになります(processEventsメソッド内で補足する場合を除く)。更にhandleExceptionメソッドが実装されていないか、実装されていても処理されなかった場合(メソッドがFALSEを返却)はフレームワークはCharcoal_ExceptionEventオブジェクトを生成し、イベントキューの先頭に追加します。ユーザタスクがこの例外イベントを処理しなかった場合、最終的にデバッグトレースが表示される(デバッグ時)か、500(内部サーバエラー)ページが表示(リリース時)されます。

Pocket

Comments are closed.