タイトルの通りの事をしようとしていたら
404ページの内容を考え始め
気がついたらBLEACHを読んでいました。
いつからコードを書いていると錯覚していたのでしょう。
さて、Slimでエラーハンドリング試してみました。
ドキュメントが完璧だったので特に面白みもなかったです←
Slim Framework Documentation
Slimとは・・・
PHP製のマイクロフレームワークでとても簡単に使えます。
細かいことは書きません。
以下のリンク先にもあるようにわずか数行でHello Worldが完成します。
Slim Framework
<?php require '../vendor/autoload.php'; // 初期化・設定 $app = new \Slim\Slim(); // ルーティング $app->get('/', function () { echo "Hello world"; }); // 実行 $app->run();
はい。
何がしたかったか
404とか500とかのページを出したかったんです。
Slim エラーハンドリング
http://docs.slimframework.com/#Error-Handling-Overview
結果
<?php require '../vendor/autoload.php'; // 初期化・設定 $app = new \Slim\Slim(); $app->config(array( 'templates.path' => '../templates', 'debug' => false, )); // エラーハンドリング $app->notFound(function () use ($app) { $app->render('404.html'); }); $app->error(function (\Exception $e) use ($app) { $app->render('500.html'); }); // ルーティング $app->get('/', function () { echo "Hello world"; }); $app->get('/notfound', function() use ($app) { $app->notFound(); }); $app->get('/error', function() { throw new Exception(); }); $app->get('/error/wazato', function() use ($app) { try { throw new \Exception('わざとのえらー'); } catch( \Exception $e ) { $app->error($e); } echo 'ここには来ない'; }); // 実行 $app->run();
これと404.htmlと500.htmlを追加するだけです。
$app->config(array( 'templates.path' => '../templates', 'debug' => false, // ここの設定 ));
debugをfalseとすることによってエラーページを500ページにすることが出来ます。
これでもし仮に万が一Fatalエラーとか起きてたとしても500ページを出すことが出来ますね!
わざとnotfoundやerrorを実行したい時は以下のようにすればいいようです。
$app->get('/notfound', function() use ($app) { $app->notFound(); }); $app->get('/error/wazato', function() use ($app) { try { throw new \Exception('わざとのえらー'); } catch( \Exception $e ) { $app->error($e); } echo 'ここには来ない'; });
やっぱフレームワークなら大体揃ってますね。