Phalcon 404ページの実装

広告

PHPフレームワークでファルコンを使用してます。
そこで今回は公開しているWEBページには必須な404ページをPhalconで実装してみましょう。

前置き


Phalconのエントリポイント(一番始めに実行されるファイル)はpublic/index.phpになってます。
ざっくりいってしまうと骨組みとなる設定はこのファイルで設定していく感じになります。
そしてこのエントリポイントでイベント(アクション)の振り分けしているのが「dispatcher」です。
DIオブジェクトのキーとなるdispatcherを指定して設定していく感じです。
今回もサクッと実装ポイントだけ記しておきます。

public/index.phpの編集


$di = new FactoryDefault();
$di->set('dispatcher', function () use ($di) {
$evManager = $di->getShared('eventsManager');
$evManager->attach("dispatch:beforeException", function ($event, $dispatcher, $exception) {
switch ($exception->getCode()) {
case \Phalcon\Mvc\Dispatcher::EXCEPTION_HANDLER_NOT_FOUND:
case \Phalcon\Mvc\Dispatcher::EXCEPTION_ACTION_NOT_FOUND:
$dispatcher->forward(array(
'controller' => 'index',
'action' => 'show404',
));
return false;
}});
$dispatcher = new \Phalcon\Mvc\Dispatcher();
$dispatcher->setEventsManager($evManager);
return $dispatcher;
}, true);


404用のcontrollerとviewを用意


今回の場合indexコントローラにshow404アクションをつくる感じですね。
contorollers/IndexController.php
class IndexController extends ControllerBase
{
public function show404Action()
{

}
}

views/index/show404.phtml
<div>404ページでーす</div>

ここに関しては404ページでなくてもTOPにリダイレクトとかでもいいかもですね。各々の環境や好みに応じてって感じで。

以上!
広告

Profile