今からFuelPHPを使う人が知るべき、FuelPHP 2.0に関する4つのこと

1. FuelPHP 2.0はまだ開発中です

FuelPHP 2.0の開発はかなり進んできていますが、リリースまでにはまだ多くの作業が残っており、年内(2013年)にはリリースされないでしょう(2013/10/30追記:その後、2.0の最初のリリース目標は2014年の春と発表されました)。

2.0は2012年から開発が進められており、2012年7月に「First FuelPHP 2.0 alpha/beta releases」として、いくつかのコンポーネントがリリースされていますが、その後、ロードマップや開発方針が変更されており、状況やコードはその頃とは微妙に変わっています。

ただし、FuelPHP 1.xの問題を解消するための大きな開発方針は変わっていません。FuelPHP 2.0のコンポーネントは、以下で公開されています。

2.0についてのまとまった最新の情報は、以下の本家ブログ記事です。

開発中のため、現在の情報はすべて変更される可能性がありますが、大きな仕様はほぼ確定していると思います。かなり以前から大枠は変わっていません。

また、FuelPHPはもっともコミュニティ主導なフレームワークの1つであり、フィードバックをいつも歓迎しています。2.0についても同様であり、他に欲しい機能や更なる改良の提案などあれば、フィードバックするとよいでしょう。

2. PHP 5.4以上を必要とします

トレイトを使うため、5.4以上が必要とされます。

3. FuelPHP 1.xとの互換性は最大限確保されます

FuelPHP 2.0はメジャーバージョンアップですが、既存アプリをできるだけ簡単に移行できるように、最大限の努力がなされます。

一部の仕様変更により既存アプリのコードの変更は必要になりますが、検索&置換でかなり対応できるレベルでしょう。

ただし、マイグレーションや、Coreクラスを拡張している場合は多くの部分で互換性はなくなるでしょう。

また、プロパティに直接アクセスするようなコードは動作しなくなる可能性があり、その場合、ゲッターとセッターを使う必要があるでしょう。

4. コードが書き直され、内部も大きく変わります

Query Builderは書き直され、MySQL以外のサポートが向上します。ORMも改良されます。

新しい概念「Application」が導入されます。1つのFuelPHPは複数のApplication(とそのフロントローダ)を持つことができます。1つのApplicationは「Module」を複数持つことができます。Moduleは、

  • モジュールフォルダ名とは無関係な名前空間を持ちます
  • モジュールフォルダ名とは無関係なベースURIセグメントプリフィックスを持ちます
  • どこにでもインストールできます
  • ルーティング可能にも不能にも定義できます
  • モジュールの初期化のためのbootsrapを持ちます

用語も変わります。ViewModelはより適切と思われる「Presenter」に名称が変更されます。

FuelPHP 1.xでのPackageはなくなり、それらはComposerでのパッケージを使うことになります。

Date: 2013/10/10

Tags: fuelphp, fuelphp2