Moonyの変更履歴

0.14.0 / 2007-01-xx
-------------------------------------------------------------------------------
* moonyコマンドの修正
  - 実行時のinclude_pathにPEARディレクトリを指定するように修正
* viewコンポーネントの導入
  - クラス追加: Moony_View
  - ヘルパー関数の定義をMoony/View.phpに移動
  - アクションクラスのインスタンス変数を利用する場合、
    <?php h($this->foo); ?>のようにアクセスできるのをpublicな変数のみに変更
* Smartyをテンプレートエンジンとしてサポートしないように
  - メソッド変更: Moony_Action::fetch()
  - クラス廃止: Moony_Smarty
  - moonyコマンドの-sオプションを廃止
* アクションクラスのconvertメソッドを評価しないように
  - リクエストパラメータを変換する場合はprepareメソッドで行うように
  - クラス廃止: Moony_Converter
* アクションクラスのvalidateメソッドの引数廃止
  - メンバ変数としてMoony_Validatorのインスタンスが設定されるように
  - 変数追加: Moony_Action::validator
  - メソッド変更: Moony_Action::renderOnError()
  - メソッド変更: Moony_Action::redirectOnError()
  - メソッド変更: Moony_Action::redirectActionOnError()
* Moony_Validatorクラスの整理
  - メソッド廃止: Moony_Validator::validateEmail()
  - メソッド廃止: Moony_Validator::validateUrl()
  - メソッド名変更: Moony_Validator::getErrorMessages() → getErrors()
* 出力バッファリングのハンドラを設定できないように
  - メソッド廃止: Moony::setObHandler()
  - メソッド廃止: Moony_Action::setObHandler()
* Moonyの動作変更方法の変更
  - アクションクラスの$moonyを直接操作することで変更可能に
    - 例: $this->moony->setSessionAutoStart(false);
  - アクションクラス内部で変更できるのは以下の通り
    - テンプレートファイル格納ディレクトリ
    - 出力エンコーディング
  - アクションクラスのprepareメソッドでのみ変更できるのは以下の通り
    - セッションのオプション設定
    - セッションを自動で開始するかどうか
  - 変数追加: Moony_Action::moony
  - メソッド廃止: Moony_Action::setTemplateDir()
  - メソッド廃止: Moony_Action::setOutputEncoding()
  - メソッド廃止: Moony_Action::setSessionOptions()
  - メソッド廃止: Moony_Action::setSessionAutoStart()
* アップロードされたファイルの保存方法変更
  - メソッド名変更: Moony_Action::moveFile() → saveFile()
* ヘルパー関数「h」で値を返すことが可能に
  - 2つ目の引数を設定することで出力するか、値を返すかを指定できるように
  - ヘルパー関数変更: h()
* Moony_Sessionクラスの機能追加
  - セッションが開始されていない状態でregenerateIdした場合、開始するように
    - メソッド修正: Moony_Session::regenerateId()
  - メソッド追加: Moony_Session::getName()
  - メソッド追加: Moony_Session::getId()
  - メソッド追加: Moony_Session::getSavePath()
* レジストリクラスの廃止
  - 共有オブジェクトは$GLOBALSに格納するように
  - クラス廃止: Moony_Registry

0.13.0 / 2006-12-24
-------------------------------------------------------------------------------
* ルーティングルールの変更
  - PATH_INFOが/foo/barの場合、以下のようにルーティングされるように
    1. アクションクラス: Foo_Bar
    2. アクションクラス: Foo
    3. テンプレート表示: foo/bar.php（Smarty利用時はfoo/bar.tpl）
    4. HTTPのステータスで404を送出
  - メソッド廃止: Moony::setDefaultAction()
  - メソッド廃止: Moony::setDefaultRedirect()
* セッションが開始するタイミングを変更
  - アクションクラスのprepareメソッドが実行された後で開始するように
* 出力バッファリングのハンドラを登録できるように変更
  - メソッド追加: Moony::setObHandler()
  - 出力バッファリングの範囲をアクションクラスの実行中のみに変更
* セッションのオプションを起動時に指定できるように
  - メソッド追加: Moony::setSessionOptions()
  - name、id、save_path、cache_expire、cache_limiterの指定が可能に
* アクションクラスの機能変更
  - Moony_Actionクラスでexecuteメソッドを定義
    - 初期状態ではテンプレート処理結果出力処理のみ
    - 各アクションクラスでオーバーライド、実装を追加すること
    - メソッド追加: Moony_Action::execute()
  - テンプレートを指定せずに出力できるように
    - アクション名が「Foo_Bar」の場合、
      テンプレート「foo/bar.php（Smarty使用時はfoo/bar.tpl）」が出力される
    - メソッド変更: Moony_Action::fetch()
    - メソッド変更: Moony_Action::render()
    - メソッド変更: Moony_Action::renderOnError()
  - リダイレクト時にHTTPステータスの指定が可能に
    - メソッド変更: Moony_Action::redirect()
    - メソッド変更: Moony_Action::redirectOnError()
  - アクションへのリダイレクトが可能に
    - メソッド追加: Moony_Action::redirectAction()
    - メソッド追加: Moony_Action::redirectActionOnError()
  - JSON形式での出力が可能に
    - JSONエクステンションまたはJsphonを変換時に利用
      - http://pecl.php.net/package/json
      - http://www.hawklab.jp/jsonencoder/
    - メソッド追加: Moony_Action::renderJson()
  - HTTPステータス送出機能の追加
    - メソッド追加: Moony_Action::sendStatus()
  - Moonyの動作設定を一部変更できるように
    - メソッド追加: Moony_Action::setTemplateDir()
    - メソッド追加: Moony_Action::setOutputEncoding()
    - メソッド追加: Moony_Action::setObHandler()
    - メソッド追加: Moony_Action::setSessionOptions()
    - メソッド追加: Moony_Action::setSessionAutoStart()
  - ファイル出力機能の廃止
    - メソッド廃止: Moony_Action::renderFile()
  - トランザクショントークン関連機能の廃止
    - メソッド廃止: Moony_Action::checkToken()
    - ヘルパー関数廃止: moony_token()
* 簡単なキャッシュ機能の追加
  - ファイルベースの簡易キャッシュ機能を提供
  - クラス追加: Moony_Cache
  - メソッド追加: Moony::setCacheDir()
  - 変数追加: Moony_Action::cache
* テンプレートエンジンとしてSmartyを使用できるように
  - PHPテンプレートの拡張子はphp、Smartyテンプレートの拡張子はtplとする
  - クラス追加: Moony_Smarty
    - Smartyのサブクラスとして実装
  - メソッド追加: Moony::useSmarty()
  - メソッド変更: Moony_Action::fetch()
  - 変数追加: Moony_Action::smarty
  - moonyコマンドに「-s」オプションを追加
    - テンプレートファイルをSmarty用に作成
    - 「-s -e」でエントリポイントをSmarty用に作成
* PATH_INFOでアクションに渡されたパラメータの取得方法変更
  - Moony_Requestから取得するように変更
  - メソッド追加: Moony_Request::getActionParam()
  - 変数廃止: Moony_Action::args
* moonyコマンドの機能変更
  - Smartyを使用するオプション（-s）を追加
  - バージョン表示オプション（-v）を追加
  - 強制上書きオプション（-f）を廃止
  - クラス名変更: Moony_Generator → Moony_Command
* グローバル変数を使わないように変更
  - クラス追加: Moony_Registry
* ヘルパー関数の定義場所を変更
  - Moony/Action.php内に記述するように変更
  - ファイル廃止: Moony/Helpers.php
* PATH_INFOの取得に関してCGI版のPHPに対応
  - $_SERVER['ORIG_PATH_INFO']が存在すれば使用するように
* その他
  - 変数廃止: Moony_Action::moony
  - メソッド名変更: Moony_Request::getEnv() → getServer()
  - メソッド名変更: Moony_Request::isSsl() → isSecure()
  - メソッド追加: Moony_Request::getCookie()
  - メソッド追加: Moony_Request::getHostUrl()
  - メソッド追加: Moony_Request::setActionPath()
  - メソッド追加: Moony_Request::getActionPath()
  - メソッド追加: Moony_Request::getActionBase()
  - メソッド廃止: Moony_Request::isHead()
  - メソッド名変更: Moony_Session::clean() → clear()
  - メソッド追加: Moony_Session::close()
  - メソッド追加: Moony_Session::isStarted()
  - メソッド追加: Moony_Session::setName()
  - メソッド追加: Moony_Session::setId()
  - メソッド追加: Moony_Session::setSavePath()
  - メソッド追加: Moony_Session::setSaveHandler()
  - メソッド追加: Moony_Session::setCacheExpire()
  - メソッド追加: Moony_Session::setCacheLimiter()
  - メソッド追加: Moony_Session::setCookieLifetime()
  - メソッド追加: Moony_Session::setCookiePath()
  - メソッド追加: Moony_Session::setCookieDomain()
  - メソッド追加: Moony_Session::setCookieSecure()
  - メソッド追加: Moony_Validator::validateCount()

0.12.1 / 2006-11-16
-------------------------------------------------------------------------------
* メソッド名変更: Moony_Action::saveUploaded() → moveFile()
* メソッド追加: Moony_Action::renderFile()
  - 任意のファイルを表示できるように
* メソッド追加: Moony_Action::renderImage()
  - 任意の画像ファイルを表示できるように
* メソッド追加: Moony_Action::sendFile()
  - 任意のファイルをダウンロードさせることができるように
* メソッド追加: Moony_Request::getEnv()
  - 環境変数の取得が可能に
* メソッド追加: Moony_Request::getHeader()
  - リクエストヘッダ（User-Agentなど）の取得が可能に
* メソッド追加: Moony_Request::isPost()、isGet()、isPut()、isDelete()、isHead()
  - リクエストメソッドの判定を行うことができるように
* メソッド追加: Moony_Request::isSsl()
  - SSL通信かどうかの判定が可能に
* メソッド追加: Moony_Request::isXmlHttpRequest()、isXhr()
  - XMLHttpRequestでアクセスされたかどうかを判定できるように
  - Prototype.jsで付加されるX-Requested-Withヘッダをもとに判定
* 自動生成のコマンドラインオプション変更
  - PEAR::Console_Getoptを利用、詳細は"moony --help"を参照のこと

0.12.0 / 2006-11-11
-------------------------------------------------------------------------------
* Moony_Actionのメソッドのシグネチャ変更（詳細は省略）
* フラッシュ領域の取り扱いを変更
  - 詳細はMoony_Session::flash()メソッドを参照のこと
* 文字列をエスケープして出力するヘルパー関数、h()追加
* Jsphonを利用したJSON出力機能の廃止
* Smartyを利用したテンプレートの取り扱い廃止

0.11.3 / リリース無し
-------------------------------------------------------------------------------
* ヘルパー関数修正: moony_token()
  - hiddenフィールドのname属性が設定されていなかったのを修正
* メソッド修正: Moony_Template_Smarty::token()
  - hiddenフィールドのname属性が設定されていなかったのを修正
* メソッド追加: Moony::setSessionAutoStart()
  - セッションを自動で開始するかどうかを設定できるように
* メソッド変更: Moony_Action::checkToken()
  - セッションが開始されていない場合にfalseを返すように変更
  - トランザクショントークンの保存タイミングをチェック時に変更
* メソッド追加: Moony_Action::uploadFile()
  - シンプルなアップロードファイル保存処理が可能に
* メソッド追加: Moony_Action::sendFile()
  - ファイルの送出が可能に
* メソッド追加: Moony_Validator::validateEmail()
  - Eメールアドレスの検証が可能に
* メソッド追加: Moony_Validator::validateUrl()
  - URLの検証が可能に

0.11.2 / 2006-11-03
-------------------------------------------------------------------------------
* アクションが見つからない場合、HTTPのステータスで404を送出するように修正
* メソッド追加: Moony::setDefaultAction()
  - アクションが見つからない場合に実行されるデフォルトアクションを指定可能に
* メソッド追加: Moony::setDefaultRedirect()
  - アクションが見つからない場合のリダイレクト先を指定可能に
* 自動生成で作成されるテンプレートファイルの内容を変更

0.11.1 / 2006-10-31
-------------------------------------------------------------------------------
* Moony_ControllerをMoony_Actionに改名、
  - アクションベースのフレームワークとして再構築（内部処理の変更なし）
* メソッド追加: Moony_Action::redirectOnError()
* Moony_Validatorのコンストラクタでmb_regex_encoding()関数を実行するように変更

0.11.0 / 2006-10-28
-------------------------------------------------------------------------------
* コントローラベースのフレームワークとして全面的に書き直し。

0.1.0 - 0.10.4
-------------------------------------------------------------------------------
* 省略…。
