下のキャプチャのように、controller, model, viewにファイルを分けて作成しています。サインインデータはMysqlに格納して、ログイン時に呼び出して、判別しています。また、PostとGetでトークンの正誤判定も行っています。
controller.php
<?php namespace MyApp; class Controller { private $_errors; private $_values; public function __construct(){ if(!isset($_SESSION['token'])){ $_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(16)); } $this->_errors = new \stdClass(); $this->_values = new \stdClass(); } protected function setValues($key, $value){ $this->_values->$key = $value; } public function getValues(){ return $this->_values; } protected function setErrors($key, $error){ $this->_errors->$key = $error; } public function getErrors($key){ return isset($this->_errors->$key) ? $this->_errors->$key : ''; } protected function hasError(){ return !empty(get_object_vars($this->_errors)); } protected function isLoggedIn() { // $_SESSION['me'] return isset($_SESSION['me']) && !empty($_SESSION['me']); } public function me(){ return $this->isLoggedIn() ? $_SESSION['me'] : null; } }