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

21 Авг 2019 в 07:00
174 +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 cod
return $this

public function b()
// some cod
return $this

public function c()
// some cod
return $this

$global->a()->b()->c();

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

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