Cakephp PHP プログラミング

【Cakephp2→4】モデル編: beforeSaveの記述の違い

Cake2とCake4の beforeSave() の移行時の記述の差異についてです。Cake4は主に各引数にオブジェクトを扱うようになっているのが大きな差異かなと思います。

役割としては同じようなものと考えてよさそうです。

Cake2: beforeSave

public function beforeSave($options = Array()) {
    // 保存前の処理を書く
}

 

Cake4: beforeSave

use ArrayObject;
use Cake\Datasource\EntityInterface;
use Cake\Event\EventInterface;

// クラス内に記述
/**
* 各保存する前に処理
*
* @param \Cake\Event\EventInterface $event イベント
* @param \Cake\Datasource\EntityInterface $entity エンティティ
* @param \ArrayObject $options オプション
* @return 
*/
public function beforeSave(EventInterface $event, EntityInterface $entity, ArrayObject $options)
{
    // 保存前の処理を書く
}

ついでに phpdoc の記述例も載せました。先ほども述べましたが、Cake4の beforeSave() の引数は複数のオブジェクトになっています。

 

 

-Cakephp, PHP, プログラミング
-