Cakephp PHP WEB開発

[Cakephp]Cake2からCake3系、Cake4系へ移行Tips(View系中心)

※本サイトはPR表記を含みます。

Cakephp2からCakephp3や4へのアップデートって、根幹から変わっている部分が多く(配列ベースからオブジェクトベースへ)元コードで稼働するケースはほぼないと言っても良いほど、破壊的な変更が加えられています。

そこで本記事では View 系を中心に、ちっぷすとしてシンプルに箇条書きでメモを残しておきます。

View系置き換え(Cake2コード → Cake3/4コード形式)

・JSやCSSなどの読み込み

// Cakephp2
'inline' => false

// Cakephp4
'block' => true

・パンくず

// Cakephp2
$this->Html->addCrumb()

// Cakephp4
$this->Breadcrumbs->add()

・コントローラー名取得

// Cakephp2
$this->name

// Cakephp4
$this->getName()

・アクション名取得

// Cakephp2
$this->action

// Cakephp4
$this->getRequest()->getParam('action')

・HTMLヘルパーURL生成

// Cakephp2
$this->Html->url()

// Cakephp4
$this->Url->build()

・Layoutテンプレート

// Cakephp2
$script_for_layout

// Cakephp4
$this->fetch('script')

// Cakephp2
$content_for_layout

// Cakephp4
$this->fetch('content')

// Viewはセットで記述
$this->fetch('meta')
$this->fetch('css')
$this->fetch('script')

・ルーティングパラメーター取得

// Cakephp2
$this->here

// Cakephp4
$this->getRequest()->getAttribute('here')

 

Controller系(Cake2コード → Cake3/4コード形式)

・レイアウト設定

// Cakephp2
$this->layout

// Cakephp4
$this->ViewBuilder()->setLayout('hoge')

・レスポンス系

// Cakephp2
$this->response->statusCode(ステータス番号)

// Cakephp4
$this->response->withStatus(ステータス番号)

・メールCake4系: Mailer

use Cake\Mailer\Mailer;

// メソッド内に記述
$mailer = new Mailer('default');
$mailer->setFrom(['me@example.com' => 'My Site'])
    ->setTo('you@example.com')
    ->setSubject('About')
    ->deliver('My message');

これだけでもレガシーなシステムから移行する際に役立つのではと思います。

-Cakephp, PHP, WEB開発
-