Cakephp PHP プログラミング

[Cakephp4]$request/$response はCake3系以降は非推奨

Cakephpのフレームワークを利用していると、必ず利用するServerRequestオブジェクト

POSTで投げられたデータを $this->request->getData() などでユーザーの入力データを扱うことができますが、実は3系で非推奨の書き方になっていたようです。

現在は Cake4 が最新なので、これから利用する人はもちろん、今後は書き方に注意する方が良いと思います。

公式ドキュメントでは、$request の書き方は統一されてないので、間違いではなくとも、長期的にメンテが少ない可能性が高い方の書き方にしたい所ですね。

 

Controller::$request / Controller::$responseは3.6以降から非推奨

https://github.com/cakephp/cakephp/blob/359fb41445a63cdf877f6c34401d6dcdf9179c9b/src/Controller/Controller.php#L121-L141

 

Component::$request / Component::$responseは3.4以降から非推奨

https://github.com/cakephp/cakephp/blob/359fb41445a63cdf877f6c34401d6dcdf9179c9b/src/Controller/Component.php#L64-L80

 

Cake4では、今後のことを考えると極力以下のように利用すると良さそうです。

// ControllerなどでGET

$this->request->getData();

// 推奨
$this->getRequest()->getData();

// ControllerなどでSET

$this->request = $this->request->getData();

// 推奨
$this->setRequest($this->getRequest->getData());

ちなみにテンプレート(View)は非推奨ではないらしいです。

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