А как другой разработчик например поймет что он занимается обработкой не просто двух чисел а двух чисел которые прошли через обработку?
Или вот например, есть какая нибудь строка которая содержит только английские символы, вдруг он положит в класс киррилицу, и тогда получит ошибку или не правильную работу...
fun func1(string englishString) {
if (*если строка не на английском*) {
throw new InvalidArgument(...):
}
// do smth useful
}
class User {
...
public function addItem(Item $item) {
if($this->haveItem($item)) {
throw new ItemAlreadyAdded();
}
$this->items[] = $item;
// Do something useful
}
...
}
главная проблема РНР - это люди, которые хотят на нем программировать поперек естественных решений.
Способов постоянно поддерживать соединение в ожидании долгожданного запроса от пользователя не так много. Можете попробовать перебрать их сами и убедиться, что результат в любом случае получается тяжеловесным до нелепости.
На самом деле, обращение к базе - не настолько затратная процедура, как поддержка соединения с ней без всякой на то необходимости.
По моему мнению, если условному HR департаменту не требуется новой функциональности, которая не нужна никаким другим департаментам
лучше оставить просто класс Departament. И от него создавать условные департаменты.