Cakephp3本番環境ではエラー表示をさせたくない

前回まで

Cakephp3を使っていると、本番環境ではCakephpテンプレートエラーを出したくない場合もある。

いろんな方法があるが、ここでは Configure::read(‘debug’) の値をif判定する。
※本番環境: 0 開発環境: 1

URLの打ち間違いの40x系ページと、phpエラー等の50x系のページに判定分を追加する

$ vi Template/Error/error400.ctp
$ vi Template/Error/error500.ctp
-$this->layout = 'error';
+// 本番環境ではエラーは表示しない
+if (Configure::read('debug') === 0) {
+    $this->layout = 'error_prod';
+} else {
+    $this->layout = 'error';
+}

本番用レイアウトページを複製して修正

$ cp Template/Layout/error.ctp Template/Layout/error_prod.ctp
$ vi Template/Layout/error_prod.ctp // 適宜修正