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

21 Авг 2019 в 07:00
196 +1
1
Ответы
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 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир