PHPのフレームワーク、FuelPHP 1.6がリリースされてますね。(参考:FuelPHP 日本語Document)
#FuelPHP 1.6 がリリースされました – A Day in Serenity @ kenjis ow.ly/kXjxP
— kenjisさん (@kenji_s) 2013年5月13日
すでにkenjisさんが重要な部分を的確に紹介する記事を書かれてるので、何を今更という状況なんですが、なんか勢いでChangelogの翻訳なんてやってしまいました。途中で息切れしててきとーなんですが、まあ、細かいことは気にしないで公開してみます。
相変わらず英語力のなさを露呈しています。しかもFuelPHPのことをよくわかっていないことまで露見しています。文中【?】がついているところは訳せなかった、あるいは特に自信がない箇所です。もちろん【?】がついていないところでも、間違っている可能性が大いにあります。トラップあり、突っ込み期待、です。ご注意ください。
原文はhttps://github.com/fuel/fuel/blob/1.6/master/CHANGELOG.mdです。この中からv1.6に関する部分だけ抜き出して掲載しています。えーと、原ライセンスはMIT Licenceかな?ここに掲載する都合上HTMLに変換してますが、原文と同じMarkdownで書いてます。(改行もそろえて)
超めんどくさかったのでたぶん次はやらない(笑)
Changelog
v1.6
重要な修正、変更、注釈。注意して読んでください
- このリリースはFuelPHPにComposerを公式に導入します。必ず Composerをインストールして、’php composer.phar update’を実行し、依存性のあるパッケージを取り込まなければなりません。このステップを踏まないと、 1.6を動かすことはできません!!!
- FuelPHPのコーディング標準に適合させるため、 Auth パッケージのクラス名が修正されました。設定とあなたが作成した拡張クラスを確認してください。(‘SimpleAuth’は現在’Simpleauth’となっています!)
- Log 機能はcoreに復帰しました。1.5からアップグレードする場合は、
config.php
のalways_load
セクションから古い ‘Log’ パッケージを削除して、フォルダからパッケージを削除してください。 - ‘stage’ 環境は ‘staging’ 環境にリネームされました。対応する定数は Fuel::STAGINGです。
- PHP timezone 設定が適切でない場合、しかるべきエラーメッセージが表示されるようになりました。
- ログファイルの権限について問題がある場合、しかるべきエラーメッセージが表示されるようになりました。【?】
umask()
を使わなくても作成されるファイルとディレクトリのパーミッションが適切に設定されるようにすべてのコードが書き換えられました。これはスレッドセーフではありません。
後方互換性に関する注釈
- FuelPHP のコーディング標準に適合させるため Auth クラスの名前は変更されました。 (
Auth_Login_SimpleAuth
に代わりAuth_Login_Simpleauth
)もしあなたのアプリケーションでAuthクラスを拡張している場合、 class-not-found エラーが発生する可能性があります。 - The ORM
validation_observer
now has multiple events. Do not define it without specifying which events to call, as it would cause validation to be called twice!【?】 - リレーションの割当に関する【?】Ormの挙動は変更になりました。unset()を実行するか、NULLやarray()をセットした場合、もしくは、新しい値を代入した場合、以前のリレーションは解除されます。そのリレーションをfetchしたかどうかに関わらず。もし、アプリケーションが既存のリレーションにオブジェクトを追加する為【?】のショートカットとしてこの’バグ’を使っていた場合、影響を受けるでしょう。
削除されたコード (v1.5もしくはそれ以前に非推奨になっていたため)
- Orm:
find()
とfind(null)
の機能は削除されました。代わりにquery()
を使用して下さい。
v1.6で非推奨になったコード (次回のリリースで削除される予定)
- ViewModel: ロードするViewModelクラスの名前を決定する際に、’View_’プリフィクスがついたクラスとついていないクラスの両方が検索されます。この挙動は非推奨です。次のリリースではViewModelクラスは必ずclasses/viewに配置されなければならず、必ず’View_’プリフィクスをつけなければなりません。
セキュリティ関連
- あなた自身でセキュリティフィルタを定義することを可能にするため、デフォルトのセキュリティフィルタは core configration から削除されました。 Note: もしあなたが以前のバージョンからマイグレーションを行い、このデフォルト設定を当てにしていた場合、アプリケーションの設定ファイルでデフォルトセキュリティフィルタを定義したかどうかを確認して下さい。
システム変更
- Markdown ライブラリは 1.2.6 にアップグレードされました。
- global configuration のキャッシュオプションはファイル探査のスピードアップのための finder path を正しくキャッシュするようになりました。
- コントローラーメソッドは、HMVC リクエストに対して ‘false’ もしくは ‘array()’ を正しい値をして返すことができるようになりました。
- シャットダウンイベント内の例外は適切にハンドルされるようになりました。
クラス
- Agent: 新しい browscap ファイルがダウンロード出来ない場合、期限切れのダウンロードを再利用するようになりました。
- Arr: 新しい
search
メソッドは、array 構造の中から値を検索し、(ドット表記の)キーを得ることが可能になりました。 - Arr: 新しい
unique
メソッドは、配列の重複排除が可能になりました。array_unique() と似ていますが、このメソッドはオブジェクトとクロージャをサポートしています。そして最初に配列をソートしません。 - Arr: 新しい
sum
メソッドは、多重構造の配列から特定の値を合計する事が可能になりました。 - Asset: CDNを利用するときに正しい Asset の URL を生成するようになりました。
- Controller_Rest: コントローラーのメソッドを使うことで認証チェックを行うようになりました。(
before()
やrouter()
の hack は回避) - DB: 新しい
identifier
メソッドは、カスタムクエリで利用される identifier を適切にクオートします。 - DB:
Database_Transaction
クラスは既に v1.2 で非推奨であり、削除されています。すべてのドライバがトランザクションをネイティブでサポートしています。 - DButil: フィールドの更新に於いて “PRIMARY_KEY” キーワードをサポートしました。
- Cache: インデックスメカニズムがリファクタリングされました。APC, Memcached, Redis バックエンド利用時の依存性チェックは適切に動作するようになりました。
- Error: 新しい設定オプションは、HTML の代わりにエラーメッセージとして表示されるであろう既に生成済みの出力を ’prior output’ リンクを介してレンダリングすることを可能にします。【?】
- File:
create_dir
メソッドは Windows でも適切に動作するようになりました。 - Form:
select
は、otpgroup を生成する際に、必要がない場合インライン CSS を使わないようになりました。 - Fieldset: 不正なラベルの生成を修正しました。
- Html:
anchor
メソッドは末尾のスラッシュがない URL を生成するようになりました。 - Input:
uri
メソッドは Windows でも適切に動作するようになりました。 - Lang:
delete
メソッドは $group を値として渡されたときも適切に動作するようになりました。 - Pagination: 最後のリンクを適切に生成するようになりました。
- Profiler: DB クエリプロファイリングは、あなたのコードの中で簡単に見つけることが出来るように、すべてのクエリのスタックトレースを含むようになりました。【?】
- Router: 動詞ベースのルーティング記法において、プロトコル (http/https) ベースのルーティングをサポートするようになりました。
- Upload: FuelPHP v2 composer ライブラリを使うために書き直されました。
- Viewmodel: オブジェクト生成時ではなく、ビューをレンダリングする前に
before
が呼び出されるようになりました。 - Viewmodel: ViewModel クラス名は、渡されたビューの名前から厳密に決定されるようになりました。
- Viewmodel: モジュールから ViewModel がモジュールから呼び出されたが、モジュールのネームスペース内に見つからない場合、ViewModel クラスのグローバルネームスペースを参照するようになりました。
Packages
- Auth: FuelPHP のコーディング標準に適合するようにクラス名が修正されました。
- Auth:
update_user
は、新しい email アドレスがユニークであるとき、更新前に検証するようになりました。【?】 - Auth: PBKDF2 の繰り返し回数が auth 設定ファイルで設定できるようになりました。
- Auth: ユーザーの複数同時ログインは、ドライバ設定ファイルで設定できるようになりました。
- Auth: Auth ログインドライバが ‘updated_at’ を正しく設定するようになりました。
- Auth: 新しい
get
メソッドは、すべてのユーザプロパティに対する統一したアクセスが可能になりました。 - Auth: 新しい
groups
メソッドは、すべての定義済みグループを返すようになりました。 - Auth: 新しい
roles
メソッドは、すべての定義済みロールを返すようになりました。 - Auth: 新しい ‘Ormauth’ ドライバはデータストアとして orm を介してデータベースを利用します。
- Auth: パッケージは Simpleauth と Ormauth へのマイグレーションを含んでいます。
- Auth: 新しい ‘Simple2Orm’ は既存の Simpleauth の設定を Ormauth に移行することを可能にします。
- Email: 添付ファイルに名前をつけることができるようになりました。
- Log: 一時的な解決策として 1.5 で導入された Log パッケージは再び削除されました。
- Oil: admin バックエンドコードを生成する際のリダイレクトループを修正。
- Oil: 例外のハンドリングとレポートを改善。
- Oil: ORM soft-delete モデルのサポートを追加。
- Oil: bootstrap がより良く動くようにスキャフォルドのテンプレートを修正。
- Oil: PHPUnit のための新しいコマンドラインオプションは、よりきめ細かなテストとログ記録が可能にします。
- Orm: バリデーションオブザーバは ‘before_insert’ と ‘before_update’ をサポートしています。
- Orm: cascade_delete が false の時、正しく外部キーがリセットされます。
- Orm: view に count(), min(), max() クエリのサポートが追加されました。
- Orm: min() と max() は文字列ではなく整数を返すようになりました。
- Orm: Temporal モデルのサポート追加。(データのバージョン管理)
- Orm: EAV属性の存在を isset() を使って確認できるようになりました。
- Orm: バリデーションオブザーバは insert と update においてバリデーションを行うようになりました。
- Orm: モデルは PK の一部として FK を持つことができるようになりました。
- Orm: You can now order a many_many result on an attribute in the through table.【?】
- Orm: 新しいモデルオブジェクトを生成する際に、カスタムデータ(カラムにない)を渡すことができるようになりました。
- Orm: unset() が実行されたり、新しいリレーションが割り当てられた場合、適切に現在のリレーションを解除します。
- Orm:
from_array
はチェインすることが可能な場合 $this を返します。 - Orm:
from_array
はカスタムデータの読み込みが可能になりました。【?】 - Orm:
from_array
複合配列から関連するオブジェクト読み込みが可能になりました。【?】 - Orm: Observer_Typing においていくつかの速度の改善。
- Orm: Observer_Typing の float 変換はロケールを理解します。【?】
- Orm: now uses property defaults on null values if defined.
- Orm: Observer_Typing は MySQL における ‘0000-00-00 00:00:00’ 表記の datetime 型を取り扱うことができます。
- Orm: 新しい
from_cache
メソッドはクエリにおけるオブジェクトキャッシングの有効、もしくは無効にすることができます。 - Orm: ‘join on’ はドキュメントに記述されたように正しく動作します。
- Orm: ‘order_by’ はサブクエリが生成された場合でも正しく動きます。
- Orm:
is_changed
は loose-typing を行います。 1 => ‘1’ のような更新は、どのようなクエリのトリガにもなりません。 - Parser: mthaml (HamlTwig) のサポート追加。
- Parser: smarty, mustache, mthaml, twig テンプレートエンジンは Composer を使うように変更されました。
- Parser: Markdown は 1.2.6 にアップグレードされました。