class AuthController extends AppController {}
class PageController extends AppController {}
class BackendPageController extends AuthController {}
private function authRedirect()
{
if ($this->controller == 'Main') {
$this->alertRedirect('success', 'Добро пожаловать', '/menu');
}
}
private function noAuthRedirect()
{
if ($this->controller != 'Main') {
$this->alertRedirect('danger', 'Всего доброго', '/');
}
}
if ($this->checkSessionId()) {
$this->authRedirect();
} else {
$this->noAuthRedirect();
}
if ($user['role'] == 'admin') echo 'Админ';
if ($user['id'] == 1) echo 'Админ'; // естественно владелец регается первый зная о том, что админ - это id = 1
если у Вас не 2 роли, то и сбивает с толку - куда отправлять 'logged' пользователя если он не 'admin'
abstract class AuthController extends Controller
abstract class AppController extends Controller
class ЛюбойController extends AppController
if (! $auth->getUser()) {
throw new HttpException(null, 401);
}
if (!$this->user and $this->controller != 'Main') $this->redirect('/'); // Main у нас пустая страница, то есть /
private function setLevel()
{
if ($this->user->exp >= $this->user->exp_max) {
$this->user->lvl += 1;
$this->user->exp -= $this->user->exp_max;
$this->user->exp_max *= 1.25;
$this->pdo('update users set lvl = ?, exp = ?, exp_max = ?, points = points + 5 where id = ? limit 1', [
$this->user->lvl,
$this->user->exp,
(int)$this->user->exp_max,
$this->user->id
]);
return true; // получили уровень
}
return false;
}
$this->user->log_level = $this->setLevel();
$this->user->log_unit = $this->setProperty('unit');
$this->user->log_building = $this->setProperty('building');
$this->user->log_operation = $this->setProperty('operation');
$this->user->log_mission = $this->setProperty('mission');
private function setProperty($property)
{
if ($this->user->log_level) {
$data = $this->pdo('select * from ' . $property . 's where lvl = ? limit 1', [
$this->user->lvl
])->fetch(); // тут может не быть элемента, соответствующего уровню, но запрос-то мы произвели всё-равно, так как получен уровень и нужно проверить, есть ли у этот элемент на этом уровне
if ($data) {
$this->pdo('insert into users_' . $property . 's set id = ?, id_' . $property . ' = ?', [
$this->user->id,
$data->{'id_' . $property}
]);
return $data;
}
}
return false;
}
ну вот у меня метод внутри try и он в случае ошибки выбрасывает исключение
а если он не выбросил исключение и мне теперь нужно сообщение об удаче, мне где его расположить отдельно после try-catch или выбросить внутри try и дополнительным catch обработать?