Как обрабатывать передачу данных внутри приложения в приложении PHP?

Так что, если мне нужно передать данные внутри приложения, есть хороший предсказуемый способ их передачи.

Я хочу иметь возможность посмотреть на функцию и узнать, что в коллекции передается в функцию.

Массив — это непредсказуемая структура данных, поэтому вы никогда не знаете, что получаете.

Я чувствую, что лучше иметь объект, определенный с именованными свойствами, и передавать его вокруг приложения, а не массива, потому что таким образом существует НЕКОТОРЫЕ определения.

Проблема в том, что в какой-то папке будет просто накапливаться куча объектов.

Интересно, чье-то мнение по этому поводу и другим альтернативам?

-1

Решение

У вас может быть большая (хотя и скрытая) проблема. Структура в вашем коде не должна пересекать более одной границы слоя.

Если какая-то структура (неважно, массив это или объект) пересекает два уровня, то, если это не намеренный компромисс, это признак того, что могут быть «архитектурные недостатки», указывающие на хрупкость вашей кодовой базы. Такие сквозные структуры данных становятся линиями разломов, когда ваша кодовая база демонстрирует нетривиальные ошибки.

Если у вас есть структуры, которые пересекают 3 или более границ слоя, ваша кодовая база трахается. Это становится одним из тех «убей его огнем, прежде чем он откладывает яйца» проекты.

Решение, которое я использую, таково:

Вместо того, чтобы выделять «структуры данных», сфокусируйте свою бизнес-логику вокруг доменные объекты. Вы создаете его в некоторой точке слоя, где вы фактически будете использовать поведение, связанное с логикой, и внедряете его или возвращаете на другой слой только для того, чтобы повлиять на него.

Вроде как:

public function loginWithPassword(Entity\EmailIdentity $identity, string $password): Entity\CookieIdentity
{
if ($identity->matchPassword($password) === false) {
throw new PasswordMismatch;
}
$identity->setPassword($password);
$this->updateEmailIdentityOnUse($identity);
$cookie = $this->createCookieIdentity($identity);

return $cookie;
}

В этом методе передается не некоторая «структура данных», а полностью сформированная логическая сущность, которая содержит специфическое поведение, связанное с бизнесом.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector