2013年12月30日月曜日

PHPフレームワークのPhalconで、404エラーの表示

PHPフレームワークのPhalcon(1.2.4)で、404エラーの表示です。ディスパッチャーの前に、設定を書き込んでおくと、例外処理をしてくれるようになる模様。エラーが発生すると、404の画面になってしまうので、開発時は外しておいた方がいいかもしれません。

/public/index.php
use Phalcon\Dispatcher,
    Phalcon\Mvc\Dispatcher as MvcDispatcher,
    Phalcon\Events\Manager as EventsManager,
    Phalcon\Mvc\Dispatcher\Exception as DispatchException;

$di->set('dispatcher', function() {

  //Create an EventsManager
  $eventsManager = new EventsManager();

  //Attach a listener
  $eventsManager->attach("dispatch:beforeException", function($event, $dispatcher, $exception) {

    //Handle 404 exceptions
    if ($exception instanceof DispatchException) {
      $dispatcher->forward(array(
        'controller' => 'index',
        'action' => 'show404'
      ));
      return false;
    }

    //Handle other exceptions
    $dispatcher->forward(array(
      'controller' => 'index',
      'action' => 'show503'
    ));

    return false;
  });

  $dispatcher = new MvcDispatcher();

  //Bind the EventsManager to the dispatcher
  $dispatcher->setEventsManager($eventsManager);

  return $dispatcher;

}, true);
実際に設定してみたサイトがこちら

0 件のコメント:

コメントを投稿