前提・実現したいこと
cakephpでエラーや例外が発生した時メールで通知するようにしたいと思っています
発生している問題
独自ハンドラーで取得した例外の変数の内容をうまく取り出すことができない
個別にファイル パスなどを取り出したいメッセージ
object(Cake\Error\PHP7ErrorException)#36 (8) { ["_error":protected]=> object(ParseError)#50 (7) { ["message":protected]=> string(45) "syntax error, unexpected '$this' (T_VARIABLE)" ["string":"Error":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(73) "/Applications/MAMP/htdocs/systemname/src/Controller/TestsController.php" ["line":protected]=> int(126) ["trace":"Error":private]=> array(19) { [0]=> array(4) { ["file"]=> ・・・・
該当のソースコード
<?php namespace App\Error; use Cake\Error\BaseErrorHandler; class AppError extends BaseErrorHandler { public function _displayError($error, $debug) { $level = $error["error"]; $description = $error["description"]; $file = $error["file"]; $line = $error["line"]; if($level != 'Warning' && $level != 'Notice' && $level != 'Debug'){ echo '急いで'; echo $description; } } public function _displayException($exception) { // $array = json_encode($exception); var_dump($exception); // exit; } }
試したこと
オーソドックスな型変換のこちらでは値がNullになってしまいます
(json_decode(json_encode($変数), true));
根本的に取得方法がわからなかったためこのような形も試して見ましたが取得できませんでした
var_dump($exception->error());
var_dump($exception->ParseError());
この2つの値だけでも取れればと思ったのですが可能でしょうか?
["message":protected]=>
["file":protected]=>
補足情報(FW/ツールのバージョンなど)
ローカル環境 MAMP
DB Mysql
Cakephp3.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/15 05:46