ホームページ > バックエンド開発 > PHPチュートリアル > CakePHP 2.x から 3.0 へのアップグレード

CakePHP 2.x から 3.0 へのアップグレード

WBOY
リリース: 2016-08-08 09:25:57
オリジナル
945 人が閲覧しました

CakePHP 2.x => 3.x アップグレード簡単

1. コントローラー層

1.find('list')
オリジナルの 2.x では、このメソッドはオプションで 'fields' を指定することで key=>value を実装していましたが、3.x では 'keyField' と 'valueField' に置き換えられました。 ' オプションで戻り値を toArray() を使用して変換する必要があります

2.find('first')、find('count')

3.x ではこれら 2 つのパラメータが完全に放棄され、find()->first() と find()->count() を使用して置き換えます。

3.クエリに関連するテーブルを検索する場合は、「contain」属性を追加する必要があります。Cake 3.x はデフォルトではテーブルを関連付けません。

4.findById

**? 関連するドキュメントが見つかりません?**

2.x の findById の形式は ($id, array $fields) です
3.x にはパラメーター ($id) が 1 つだけあります。データをフィルターするには select(array $fields) メソッドを渡す必要があります

5.Component->initialize()

2.x は、initialize(Controller $Controller) を使用して、コンポーネントを呼び出すコントローラーを取得します

3.x は、initialize のパラメーターをInitialize(array $config) に変更し、$controller を使用します= $ this->_registry->getController();Get

6.SessionComponent

3.x はこのコンポーネントを放棄し、$this->request->session() に置き換えました


2.モデルレイヤー

1.Associations

2.x は属性を定義することで関連付けを実現します

3.x は表の初期化メソッドで $this->belongsTo、$this->hasMany、$this->belongsToMany、$this を呼び出す必要があります - >addAssociations とその他の実現メソッド

2.Validation

2.x は、validate 属性を定義することでデータ検証を実装します

3.x は、これを実現するために Table で validationDefault(Validator $validator) メソッドを定義する必要があります

3.virtualFields

この属性は 3.x で廃止されました。使用する必要がある場合は、Entity にメソッドを追加する必要があります

例えば、テーブル A に仮想フィールド full_name を定義する必要があります
まず、テーブルAのEntityに保護された関数_getFullName()
を追加します
$_accessibleにfull_nameを追加します
A->findを使用する場合、値はobject->propertyを通してのみ取得でき、配列を通して取得することはできません

4.field()

**?関連するドキュメントが見つかりません?**
3.x ではこのメソッドが廃止された可能性があり、get() メソッドで置き換えることができます

5.ClassRegistry::init()

3.x このメソッドは廃止されたため、TableRegistry::get() に置き換える必要があります

6.Mysql エイリアス設定

2.x 'fields'=>array('id as table_id') のように、fields 属性に as を追加するだけです
3.x エイリアスを定義する場合は、次のことを行う必要があります'fields '=>['table_id'=>'id'] などのキーを追加します

3. レイヤーを表示する

(ビューレイヤー、2.xのViewフォルダーから3.xのTemplateに移動)

1.$this->Html->url

3.x では、代わりに $this->Url->build を使用してください

4. バグ

1.関連付け

hasManyテーブルの関連付けをクエリする際、フィールドを指定する必要がある場合、フィールドに関連付けキーを追加する必要がありますか? ? ?

このアップグレードガイドは引き続き更新されます~~~~~~

上記では、CakePHP 2.x から 3.0 へのアップグレードをあらゆる側面を含めて紹介していますが、PHP チュートリアルに興味のある友人にとって役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート