CakePHPの現在の安定バージョンは2.5.5です。 このフレームワークが現在提供する可能性を簡単に見てみましょう。その後、3.0.0に登場する新製品について詳しく見ていきましょう。
CakePHPを使用する価値があるのはなぜですか?
CakePHPを使用すると、Webアプリケーションをより簡単に、より速く、より少ないコードで作成できます。 複雑なXMLまたはYAMLファイルはありません。 データベース接続を構成して、開発を開始するだけです。 どこに、何を、どのように配置するかを考える代わりに、アプリケーションの設計を支援するために、思慮深いCakePHPの規則に依存します。 ほとんどすべてのプロジェクトで必要なものはすでに実装されています。 多言語対応、データベースへのアクセス、キャッシュ、検証、認証などのサポートは、すでにフレームワークのコアに組み込まれています。 以下に、CakePHP 2.5.5の機能の短いリストを示します。
- PHPバージョン5.2.8以降との互換性
- データベースと対話するための組み込みORM
- 足場-データベース構造でのアプリケーションフレームワークの構築
- コマンドラインコード生成
- MVCアーキテクチャ
- Query Manager、柔軟なURL、およびルーティング
- 組み込みの検証
- PHP構文とヘルパーを使用した高速で柔軟なテンプレート
- AJAX、JavaScript、HTMLフォームなどのヘルパーを表示します。
- 電子メール、Cookie、セキュリティ、セッション、およびリクエストのコンポーネント
- 柔軟なACL
- データの正規化
- 柔軟なキャッシング
- ローカリゼーションサポート
- サイトのどのディレクトリからでも機能し、Apacheの構成は実質的に必要ありません。
- 優れたドキュメントとアクティブなCakePHPコミュニティ
- このフレームワークはMITライセンスの下でリリースされており、商用プロジェクトでの使用に最適です。
2014年1月、CakePHP 3.0.0の最初のプレビューがリリースされました。 現在、開発は活発に進行しており、CakePHP 3.0.0-betaがリリースされたばかりです。つまり、リリースはもうすぐです。 それまでの間、第3バージョンの新機能を見てみましょう。
CakePHP 3.0.0-betaの新機能
ディレクトリ構造と命名の変更
- アプリケーションとプラグインの同じディレクトリ構造。 これにより、プラグインを操作するときに、小さなモジュラーアプリケーションで作業しているように感じることができます。
- src /構成は現在/構成
- src / bootstrap.phpは/config/bootstrap.phpになりました
- ログファイルはデフォルトディレクトリのトップレベルになりました
- Bakeテンプレートはsrc / Template / Bakeにあるはずです
- ベンダープレフィックス(AcmeCorp / Usersなど)を使用するプラグインの名前は変更されていません。 Users.Userを使用する代わりに、AcmeCorp / Users.Userを使用する必要があります。 また、ベンダープレフィックスはプラグインフォルダーのフォルダー名として使用されるため、プラグインはplugins / AcmeCorp / Userにインストールされます。
- 例外ファイルは、対応するネームスペースに移動されました。
ORMの改善
- Microsoft SQL Serverのサポートを追加しました
- BelongsToおよびHasOneの空の関連付けは、空のエンティティを作成しなくなりました。 代わりに、関連付けプロパティはnullになります
- すべての異なるORM操作のパラメーターが一貫性を持つようになりました
- ソートするデータがリクエストになく、エンティティにある場合、フィールドのホワイトリストを指定できます。
- テーブルの_initializeSchemaメソッドを使用してカスタム列タイプを実装するのが簡単になりました
- クエリ:: newExpr()がSQLステートメントを許可するようになりました
- Nullable条件の作成がより簡単になりました。
'field IS' => $val
、$ valがNULLでない場合に正しいSQL'field IS' => $val
生成します。 - INキーワードを使用した条件は、空のデータでより適切に機能するようになりました
- クエリ:: autoFields()を追加しました。 これは、メインテーブルのフィールドが自動的に選択されたかどうかを制御します。
- FinderOptionsキーを使用してクローラーオプションを個々のページネータークローラーに渡す機能
- Schema \ Table :: defaultValue()を使用して、データベースから値の個別の列を取得できるようになりました
- newEntity()およびpatchEntity()のオプションのキーとしてAccessibleFieldsを追加しました。 これにより、大量のアプリケーションをより細かく制御できます。
- TranslateBehaviorは、現在のアプリケーションロケールに基づいて翻訳を自動的に検索します
- テーブルの追加:: findOrCreate()メソッド
- contains()を使用して関連付けの結合タイプをオーバーライドする機能
- 現在、移行は公式のCakePHPプラグインです。 CakePHPラッパーで優れたPhinxライブラリをラップして、設定行の繰り返しを避け、CakePHPの機能を追加します
重要な変更
- 独立した使用のためにフレームワークを個別のコンポーネントに分離:コレクション、検証、ユーティリティ、イベント、カーネル
- ルーターのクラスが書き直され、ルーティングファイルが以前よりもDRYの原則とより整合するように、新しいメソッドが追加されました。 CakePHPが提供するデフォルトのルートは削除されました。 それらの場所は、アプリケーション開発のプロトタイプ段階を支援するために提供された小さなルートのセットに取って代わられました。
- テーマとプラグインのマージ。 これで、任意のプラグインをテーマとして使用できます。 これにより、プラグインと同じくらい簡単にパッケージ化と配布ができ、ヘルパーとセルを使用できます。
- ビューセルが表示されました -これらはコントローラーと機能が似ている小さなクラスですが、ビューで直接使用して、任意のソースからデータを取得し、特定のテンプレートを表示できます
- Viewオブジェクトの作成が簡素化され、コントローラーに依存しなくなりました
- マネージャーフィルターの再設計-フィルターは、ネストされた依存関係を追加した構成データではなく、オブジェクトインスタンスとして登録されるようになりました
- 新しいセッションオブジェクト。 CakePHP 3.0では、リクエストオブジェクトを使用してセッションにアクセスできます
$this->request->session()
- 以前は、CookieComponentは1つの名前空間でのみ機能していました。 再設計されたCookieComponentは、Cookie名前空間の構成をCookie処理から分離します
- 新しいTimeクラス-TimeクラスはCarbonおよびDateTimeライブラリと同じことができるようになりました
- CakePHP 3.0は、開発者にいくつかの種類のメッセージを簡単な方法で作成およびレンダリングするためのツールを提供します。 このために、別個のコンポーネントとヘルパーFlashHelperとFlashComponentが作成されました。
- CacheHelperはCakePHPから削除されました。 開発チームは、このアシスタントの機能を、ワニスなどの別のサーバーで実行することをお勧めします。
- クラスL10nは削除されました。 ext / intlおよびAura / Intl上に構築された新しいローカリゼーションサブシステムは、より強力な置換構文を提供し、sprintf()に基づくフォーマッターの下位互換性を維持します。
- Validator :: notEmpty()メソッドを追加しました
- リクエスト:: isMobileは、外部ライブラリを使用して、増え続けるモバイルデバイスに対応するようになりました
- デフォルトのパスワードで暗号化
- 新しいロギングインターフェイス。 現在、すべてのロギングエンジンはPsr \ Log \ LoggerInterfaceinterfaceを実装しています
- アプリケーションのHTTPリクエストのすべての側面をテストするための新しいIntegrationTestCaseクラスが登場しました。
- DebugKitが登場しました-これは、時間やメモリ、実行されたリクエスト、ログメッセージ、ビュー変数など、コードに関する有用な統計を収集するアプリケーションのツールバーです
- コンソールの改善
- ロードプロセスを高速化し、テンプレートヘルパーの一部を生成することでパフォーマンスを向上
- 新しいベーカリーテンプレート
プラグイン
バージョン3.0のプラグインが毎日登場し始めています。 最も興味深いのは次のとおりです。
- TwigView -Twigテンプレートエンジン
- 想像してみてください -画像プラグイン
- Geo-地理データを操作するためのユーティリティと動作のライブラリが含まれています
- 非難 -データベース内の行を変更するユーザーIDを登録します
- CakePdf-さまざまなエンジンを使用してPDFファイルを生成します
- 認証 -許可および認証アダプター
- TinyAuth-軽量認証システム
- TwitterBootstrap-ブートストラップインターフェイスを生成するためのプラグイン
- Whoops-便利なデバッグインターフェイスを備えた代替の例外レンダラー
- Assetic -CSSおよびJavascriptを縮小および処理(前処理)します
3.0.0-betaリリースをダウンロードするか、
composer create-project -s dev cakephp/app
を使用して、CakePHP 3.0を試すことができます 。
便利なリンク
CakePHP-公式フレームワークページ
CookBook-公式ドキュメント
API -CakePHPクラスの説明
GitHub-すべてのリリースのソースコード
プラグイン -フレームワークプラグインリポジトリ
ベーカリー -ヒント、ガイド、記事
コミュニティセンター -公式コミュニティページとチャンネルのリスト
この記事では、変更点の完全なリストについて簡単に説明します。 読者がこのトピックに興味がある場合は、次の記事で、バージョン2.xからの移行の最も重要な変更と方法について詳しく読むことができます。