Как упростить вызов функций класса? Предисловие: $global = new actions;
Имеется код вызова функций из класса:$global->checkSession(); # Проверка наличие сессии у пользователя
$global->checkOnBan(); # Проверяем на бан пользователя
$global->checkCookie(); # Проверка на существование cookie-файлов
$global->logoutFromSite(); # Если пользователь решил выйти с сайта
$global->checkOnDeletedFromDB(); # Проверка, если пользователь был удалён из БД
$global->setOnline(); # Ставим онлайн пользователю
Как из этого огромного куска преобразовать в одну функцию, либо же вызов функций вида $global->a()->b()-c();

21 Авг 2019 в 07:00
180 +1
0
Ответы
1

Для упрощения вызова функций класса можно создать одну функцию, которая будет вызывать все необходимые функции по порядку. Например:

function checkUserStatus() {
global $global;
$global->checkSession();
$global->checkOnBan();
$global->checkCookie();
$global->logoutFromSite();
$global->checkOnDeletedFromDB();
$global->setOnline();
}
checkUserStatus();

Таким образом, достаточно будет вызвать только одну функцию checkUserStatus(), которая уже содержит вызов всех необходимых функций.

Если же вы хотите использовать цепочку вызовов функций вида $global->a()->b()->c(), то необходимо реализовать методы в классе actions, которые будут возвращать сам объект $global после выполнения каждой функции. Например:

class actions {
public function a() {
// some code
return $this;
}
public function b() {
// some code
return $this;
}
public function c() {
// some code
return $this;
}
}
$global->a()->b()->c();

Таким образом, вы сможете вызывать функции цепочкой, передавая объект $global через return $this после каждой функции.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир