Сегодня покажу вам простой, но очень удобный приём, который помогает наводить порядок в... — 27 апреля 2026 г. в 04:33:02.266
Сегодня покажу вам простой, но очень удобный приём, который помогает наводить порядок в больших PHP-проектах — использование кастомных коллекций вместо массивов. Если вы когда-нибудь передавали в методы или возвращали из них массивы с объектами, то наверняка сталкивались с ситуацией, когда непонятно, что в массиве лежит. А потом кто-нибудь передал туда строку или null — и привет, баги. Я стал использовать свои классы коллекций. Простой пример: class UserCollection { /** @var User[] */ private array $users = []; public function __construct(array $users = []) { foreach ($users as $user) { $this->add($user); } } public function add(User $user): void { $this->users[] = $user; } public function all(): array { return $this->users; } public function filterByActive(): self { return new self(array_filter($this->users, fn(User $u) => $u->isActive())); } // и так далее } Теперь везде, где раньше был User[], я работаю с UserCollection. Это сразу даёт: - типизацию (и защиту от мусора), - автодополнение в IDE, - методы прямо в коллекции (например, filterByActive, sortByName, first() и т.д.), - чище и понятнее сигнатуры методов. Это похоже на коллекции из Laravel, но я использую это везде, даже в маленьких проектах без фреймворков. Такие объекты делают код чище, устойчивее и легче читаемым. Попробуйте в одном из ваших проектов заменить массивы объектов на такие коллекции — и вы удивитесь, как стало лучше. 👉 @php_lib

