public function testClassName() { $type = 'Controller'; $name = 'UsersController'; $fullName = App::className($name, $type); $this->assertEquals('App\\Controller\\UsersController', $fullName); }
/** * ヘルパークラスをロードする. * * @return \TRW\View\Helper */ public function loadHelper($name) { $class = App::className($name . 'Helper', 'View\\Helper'); if ($class === false) { throw new Exception('missing helper ' . $name); } return $this->{$name} = new $class($this); }
/** * コントローラーを生成する. * * @param \TRW\Requst\RequestAggreagate * @return \TRW\Controller\Controller * @throws \TRW\Exception\MissingControllerException * コントローラークラスが見つからない時 */ public function getController($request) { $class = $request->getParam('controller'); $fullName = App::className($class . 'Controller', 'Controller'); if ($fullName === false) { throw new MissingControllerException('missing controller'); } $controller = new $fullName($request); return $controller; }
/** * コンポーネントを読み込みを行う. * * このメソッドはinitializeの中で利用すると良いでしょう * 読み込まれたコンポーネントは$this->Authのようにアクセスすることができます * * * @param string $name コンポーネント名 * @param array $config 初期設定をしたい場合使う * @return void */ public function loadComponent($name, $config = null) { $class = App::className($name . 'Component', 'Controller\\Component'); if ($class === false) { throw new MissingComponentException('component not found ' . $name); } $this->{$name} = new $class($this, $config); }
/** * 送られてきたリクエストデータから認証を行う. * * @return \TRW\ActiveRecord\BaseRecord|booean BaseRecordを継承したUserモデル, * 認証に市失敗するとfalse * */ private function authenticate() { $model = App::className('User', 'Model'); if ($model === false) { throw new MissingModelException('User model notfound'); } $request = $this->controller->getRequest(); $userName = $request->getPost('name'); $password = $this->password($request->getPost('password')); $result = $model::whereAll($model::tableName(), ['where' => ['field' => 'name', 'comparision' => '=', 'value' => $userName], 'and' => ['field' => 'password', 'comparision' => '=', 'value' => $password]], $model); if (count($result) === 0) { return false; } $user = $result[0]; return $user; }