2016年4月26日火曜日

PHPフレームワークMakoで、フィルター(Route filters)

PHPフレームワークMako(4.5.10)で、フィルター(Route filters)です。beforeフィルターでログインチェックしている例です。

/app/routing/filters.php
$filters->register('login_check', 'app\routing\filters\LoginCheck');

/app/routing/routes.php
$routes->get('/member', 'Members::mypage', 'mypage')->before('login_check');

/app/routing/filters/LoginCheck.php
namespace app\routing\filters;

use mako\http\Request;
use mako\http\Response;
use mako\auth\Gatekeeper;

class LoginCheck
{
  protected $request;
  protected $response;
  protected $gatekeeper;

  public function __construct(Request $request, Response $response, Gatekeeper $gatekeeper)
  {
    $this->request = $request;
    $this->response = $response;
    $this->gatekeeper = $gatekeeper;
  }

  public function filter()
  {
    $isGuest = $this->gatekeeper->isGuest();
    if ($isGuest) {
      return $this->response->redirect("/login");
    }
  }
}

実際に設定してみたサイトがこちら

参考サイト
Route filters(Mako Framework Documentation)

0 件のコメント:

コメントを投稿