🔥 Когда понимаешь SOLID — жизнь становится проще
В октябре действует скидка 40% на все курсы от Proglib Academy, включая интенсив «Архитектуры и шаблоны проектирования»
📘 На интенсиве ты:
— разберёшься, как проектировать приложения, которые не ломаются при каждом изменении;
— освоишь SOLID-принципы, IoC, адаптеры и фабрики;
— научишься строить масштабируемые архитектуры;
— создашь собственную игру «Звёздные войны».
👨💻 Примеры кода на C#, Java, Python, PHP, C++ и JavaScript. Главное — понимать принципы, а не язык.
Преподаватель — Евгений Тюменцев, директор компании HWdTech, разрабатывал многопоточные кроссплатформенные приложения для IBM Watson.
📆 Формат: онлайн, 1 месяц.
📚 9 лекций + 2 бонусных занятия + практика.
Интенсив подойдёт джунам, которые хотят апнуться до мидла, и мидлам, мечтающим о роли архитектора.
👉 Переходи к курсам со скидкой 40%
В октябре действует скидка 40% на все курсы от Proglib Academy, включая интенсив «Архитектуры и шаблоны проектирования»
📘 На интенсиве ты:
— разберёшься, как проектировать приложения, которые не ломаются при каждом изменении;
— освоишь SOLID-принципы, IoC, адаптеры и фабрики;
— научишься строить масштабируемые архитектуры;
— создашь собственную игру «Звёздные войны».
👨💻 Примеры кода на C#, Java, Python, PHP, C++ и JavaScript. Главное — понимать принципы, а не язык.
Преподаватель — Евгений Тюменцев, директор компании HWdTech, разрабатывал многопоточные кроссплатформенные приложения для IBM Watson.
📆 Формат: онлайн, 1 месяц.
📚 9 лекций + 2 бонусных занятия + практика.
Интенсив подойдёт джунам, которые хотят апнуться до мидла, и мидлам, мечтающим о роли архитектора.
👉 Переходи к курсам со скидкой 40%
😁2
🚀 composer/xdebug-handler — отключение Xdebug для повышения производительности
Библиотека composer/xdebug-handler предназначена для временного отключения расширения Xdebug в процессе выполнения PHP-скриптов, что позволяет значительно ускорить операции, такие как установка зависимостей с помощью Composer.
Зачем это нужно?
Xdebug предоставляет мощные возможности для отладки и профилирования PHP-кода, однако его включение может существенно замедлить выполнение скриптов. Например, Composer может работать в 3–4 раза медленнее при активном Xdebug, даже если не используются функции профилирования.
composer/xdebug-handler автоматически перезапускает процесс PHP без загрузки Xdebug, сохраняя при этом все необходимые настройки и переменные окружения. После завершения работы Xdebug восстанавливается.
Когда стоит использовать?
В CLI-скриптах, например, при запуске Composer.
В CI/CD пайплайнах, где важна скорость выполнения.
В разработке, когда необходимо временно ускорить выполнение скриптов без отключения Xdebug.
Установка
📦 Ссылка на репозиторий GitHub
Библиотека пхпшника
#инструменты
Библиотека composer/xdebug-handler предназначена для временного отключения расширения Xdebug в процессе выполнения PHP-скриптов, что позволяет значительно ускорить операции, такие как установка зависимостей с помощью Composer.
Зачем это нужно?
Xdebug предоставляет мощные возможности для отладки и профилирования PHP-кода, однако его включение может существенно замедлить выполнение скриптов. Например, Composer может работать в 3–4 раза медленнее при активном Xdebug, даже если не используются функции профилирования.
composer/xdebug-handler автоматически перезапускает процесс PHP без загрузки Xdebug, сохраняя при этом все необходимые настройки и переменные окружения. После завершения работы Xdebug восстанавливается.
Когда стоит использовать?
В CLI-скриптах, например, при запуске Composer.
В CI/CD пайплайнах, где важна скорость выполнения.
В разработке, когда необходимо временно ускорить выполнение скриптов без отключения Xdebug.
Установка
composer require composer/xdebug-handler📦 Ссылка на репозиторий GitHub
Библиотека пхпшника
#инструменты
How to: обнаружить и добавить отсутствующий RefreshDatabase в тестах Laravel
Статья объясняет проблему при тестировании Laravel-приложений: если в тестах не используется трейт
Автор показывает, как это предотвратить:
🔸 можно добавить
🔸 можно искать тесты без этого трейта с помощью
— эта команда находит тесты, где нет трейта, но есть использование фабрик.
🔸можно расширить поиск и даже встроить такую проверку в GitHub Actions, чтобы CI падал, если в PR есть тесты без трейта, но с операциями, изменяющими БД.
В конце совет:
🔹 всегда использовать
🔹 предпочитать фабрики и сидеры ручному созданию моделей;
🔹 проверять, что HTTP-тесты, создающие записи, также используют этот трейт.
🔗 Читать статью
Библиотека пхпшника
Статья объясняет проблему при тестировании Laravel-приложений: если в тестах не используется трейт
RefreshDatabase, данные, созданные в БД (через фабрики, сидеры или HTTP-запросы), могут сохраняться между тестами и вызывать случайные ошибки при последующих запусках.Автор показывает, как это предотвратить:
🔸 можно добавить
RefreshDatabase глобально для всех feature-тестов через tests/Pest.php;🔸 можно искать тесты без этого трейта с помощью
grep, например:grep -rL 'RefreshDatabase' tests/Feature | xargs grep -l '::factory('— эта команда находит тесты, где нет трейта, но есть использование фабрик.
🔸можно расширить поиск и даже встроить такую проверку в GitHub Actions, чтобы CI падал, если в PR есть тесты без трейта, но с операциями, изменяющими БД.
В конце совет:
🔹 всегда использовать
RefreshDatabase, так как он быстрее и безопаснее других способов очистки БД;🔹 предпочитать фабрики и сидеры ручному созданию моделей;
🔹 проверять, что HTTP-тесты, создающие записи, также используют этот трейт.
🔗 Читать статью
Библиотека пхпшника
😁2
📚 Классика, которая не стареет: курс по структурам данных
Одни из легендарных лекций по структурам данных от MIT, где каждая лекция — как путешествие в глубину компьютерной науки.
Темы, которые остаются актуальными и сейчас:
➡️ Time travel — персистентные структуры данных: как «помнить прошлое», но не менять его.
➡️ Geometry — работа с многомерными данными (карты, таблицы, базы).
➡️ Dynamic optimality — идеальное дерево поиска: существует ли оно вообще?
➡️ Memory hierarchy — оптимизация работы с кэшем, даже не зная его размера.
➡️ Hashing — самая используемая структура данных в мире, и до сих пор поле активных исследований.
➡️ Integers — когда логарифм слишком медленно, а константа — возможна.
➡️ Dynamic graphs — как быстро пересчитывать граф при изменениях связей.
➡️ Strings — поиск подстрок в гигантских текстах (Google, ДНК и всё между).
➡️ Succinct structures — структуры, которые занимают почти столько же места, сколько сами данные.
🎓 Ссылка на лекции от MIT
Хочешь прокачаться в алгоритмах с практикой и поддержкой?
— Алгоритмы и структуры данных
⚡️ Сейчас действует акция –40% на курс и ещё несколько программ.
🐸 Библиотека пхпшника
Одни из легендарных лекций по структурам данных от MIT, где каждая лекция — как путешествие в глубину компьютерной науки.
Темы, которые остаются актуальными и сейчас:
🎓 Ссылка на лекции от MIT
Хочешь прокачаться в алгоритмах с практикой и поддержкой?
— Алгоритмы и структуры данных
⚡️ Сейчас действует акция –40% на курс и ещё несколько программ.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎲 Простой скрипт на PHP: что будет — true или false?
🔍 На первый взгляд:
Но PHP выведет
🧠 Почему так?
В PHP есть два числовых типа: int и float (double, по стандарту IEEE-754).
Если в коде стоит очень большое целое число, которое не помещается в диапазон int (на 64-битной системе около ±9.22e18), PHP автоматически парсит его как float.
В нашем примере оба литерала слишком большие → оба превращаются в float ещё на этапе разбора кода.
float хранит числа с ~15–17 значимыми цифрами. На значениях порядка 10¹⁹ шаг между двумя смежными представленными числами (ULP) может быть около 2048!
Разница в 1 между $a и $a + 1 слишком мала, чтобы быть «видимой» в представлении float. В итоге оба числа записываются как одно и то же значение.
При строгом сравнении === PHP сравнивает тип и внутреннее двоичное представление — и они совпадают → true.
⚠️ Где это может подвести в жизни
ID из БД или API
Длинные идентификаторы (BIGINT) попадают в PHP как числа → уязвимость к потере точности.
json_decode
Без JSON_BIGINT_AS_STRING большие числа могут превратиться в float.
Ключи массивов
Если использовать очень большое число как ключ, он может оказаться float, потом приведён к int, и несколько ключей «слипнутся» в один.
Сравнения и безопасность
Два разных числа могут быть признаны равными, что приводит к неожиданному поведению.
✅ Как защититься
Передавайте идентификаторы как строки, а не числа.
При декодировании JSON используйте:
Для операций с большими числами — bcmath, gmp или аналоги:
Валидируйте входные данные: не приводите строку к int, если она вне допустимого диапазона.
На фронтенде (JavaScript) тоже осторожно: безопасная зона — до ±(2^53 − 1). Всё, что больше — отправляйте строкой.
💡 PHP «слипает» очень большие целые числа в float, и на больших значениях шаг между числами становится большим. Поэтому два разных литерала могут превратиться в одно и то же значение.
🔗 Хабр
Библиотека пхпшника
$a = 12345678901234567890;
$b = $a + 1;
var_dump($a === $b);
🔍 На первый взгляд:
$b = $a + 1 → два разных числа, значит === должен вернуть false.Но PHP выведет
true — значения «слипаются».🧠 Почему так?
В PHP есть два числовых типа: int и float (double, по стандарту IEEE-754).
Если в коде стоит очень большое целое число, которое не помещается в диапазон int (на 64-битной системе около ±9.22e18), PHP автоматически парсит его как float.
В нашем примере оба литерала слишком большие → оба превращаются в float ещё на этапе разбора кода.
float хранит числа с ~15–17 значимыми цифрами. На значениях порядка 10¹⁹ шаг между двумя смежными представленными числами (ULP) может быть около 2048!
Разница в 1 между $a и $a + 1 слишком мала, чтобы быть «видимой» в представлении float. В итоге оба числа записываются как одно и то же значение.
При строгом сравнении === PHP сравнивает тип и внутреннее двоичное представление — и они совпадают → true.
⚠️ Где это может подвести в жизни
ID из БД или API
Длинные идентификаторы (BIGINT) попадают в PHP как числа → уязвимость к потере точности.
json_decode
Без JSON_BIGINT_AS_STRING большие числа могут превратиться в float.
Ключи массивов
Если использовать очень большое число как ключ, он может оказаться float, потом приведён к int, и несколько ключей «слипнутся» в один.
Сравнения и безопасность
Два разных числа могут быть признаны равными, что приводит к неожиданному поведению.
✅ Как защититься
Передавайте идентификаторы как строки, а не числа.
При декодировании JSON используйте:
json_decode($json, false, 512, JSON_BIGINT_AS_STRING);
Для операций с большими числами — bcmath, gmp или аналоги:
bccomp("12345678901234567890", "12345678901234567899"); // -1
bcadd("99999999999999999999", "1"); // "100000000000000000000"Валидируйте входные данные: не приводите строку к int, если она вне допустимого диапазона.
На фронтенде (JavaScript) тоже осторожно: безопасная зона — до ±(2^53 − 1). Всё, что больше — отправляйте строкой.
💡 PHP «слипает» очень большие целые числа в float, и на больших значениях шаг между числами становится большим. Поэтому два разных литерала могут превратиться в одно и то же значение.
Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤1
Если хочешь, чтобы код всегда был аккуратным и соответствовал стандартам — не делай это вручную, настрой автоформатирование в IDE!
🔍 Как это работает:
Используй PSR-12 стандарт для форматирования кода.
Подключи php-cs-fixer к проекту:
composer require --dev friendsofphp/php-cs-fixer
Настрой IDE (PhpStorm, VS Code) так, чтобы код автоматически форматировался при сохранении файла.
./vendor/bin/php-cs-fixer fix
⚡️ Почему это круто:
✅ Все файлы соответствуют стандарту без ручной правки
✅ Экономия времени на ревью и исправления стиля
✅ Чистый и читаемый код для всей команды
💡 Совет: можно настроить pre-commit hook через Composer, чтобы перед каждым коммитом код автоматически форматировался:
"scripts": {
"pre-commit": "php-cs-fixer fix"
}Теперь каждая сохранённая строка кода и каждый коммит будут соответствовать стандартам без лишней работы.
Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🥱3👍2👏1😁1
💥 Октябрь — месяц апгрейда!
До конца этого месяца действует скидка 40% на все курсы Proglib Academy(кроме AI-агентов, ML для старта и математики) .
Под акцию попал и наш хит — курс «Алгоритмы и структуры данных».
👨💻 Он подойдёт джунам, мидлам и всем, кто хочет писать код осознанно, а не наугад.
👨🏫 Преподаватели — инженеры из Яндекса и ВШЭ.
🎓 Сертификат по итогам обучения — в портфолио.
➖ 47 видеоуроков и 150 практических задач;
➖ поддержка преподавателей и чат;
➖ доступ к материалам на 12 месяцев.
Полная программа курса тут 👈
👉 Остальные курсы
До конца этого месяца действует скидка 40% на все курсы Proglib Academy
Под акцию попал и наш хит — курс «Алгоритмы и структуры данных».
👨💻 Он подойдёт джунам, мидлам и всем, кто хочет писать код осознанно, а не наугад.
👨🏫 Преподаватели — инженеры из Яндекса и ВШЭ.
🎓 Сертификат по итогам обучения — в портфолио.
➖ 47 видеоуроков и 150 практических задач;
➖ поддержка преподавателей и чат;
➖ доступ к материалам на 12 месяцев.
Полная программа курса тут 👈
👉 Остальные курсы
🐘 PHP для начинающих: жизненный цикл приложений на Laravel
Статья объясняет жизненный цикл Laravel (Laravel Lifecycle) — то есть путь, который проходит HTTP-запрос от пользователя до формирования ответа в браузере.
Она предназначена для начинающих PHP-разработчиков и часто встречается на собеседованиях.
Ключевые идеи:
Laravel Lifecycle — это последовательность шагов, через которые проходит запрос внутри фреймворка.
Основные этапы:
Service Providers — инициализируют основные функции: БД, кэш, маршрутизацию, аутентификацию.
Middleware — фильтры, проверяющие запросы (например, авторизацию).
Routing и Controller — определяют, какой метод контроллера должен обработать запрос.
Models и Database — при необходимости извлекаются данные из БД.
View и Response — данные преобразуются в HTML-ответ и отправляются пользователю.
Авторы объясняют это на примере ресторана:
вход —
кухня —
повар — контроллер,
блюдо — ответ пользователю.
Понимание жизненного цикла Laravel помогает лучше дебажить, писать оптимизированный код и осознать, как фреймворк превращает обычный HTTP-запрос в готовую HTML-страницу.
👉 Читать статью
Библиотека пхпшника
#php_азбука
Статья объясняет жизненный цикл Laravel (Laravel Lifecycle) — то есть путь, который проходит HTTP-запрос от пользователя до формирования ответа в браузере.
Она предназначена для начинающих PHP-разработчиков и часто встречается на собеседованиях.
Ключевые идеи:
Laravel Lifecycle — это последовательность шагов, через которые проходит запрос внутри фреймворка.
Основные этапы:
public/index.php — точка входа, с которой всё начинается.bootstrap/app.php — создаётся экземпляр приложения и подгружается ядро (Kernel).Service Providers — инициализируют основные функции: БД, кэш, маршрутизацию, аутентификацию.
Middleware — фильтры, проверяющие запросы (например, авторизацию).
Routing и Controller — определяют, какой метод контроллера должен обработать запрос.
Models и Database — при необходимости извлекаются данные из БД.
View и Response — данные преобразуются в HTML-ответ и отправляются пользователю.
Авторы объясняют это на примере ресторана:
вход —
index.php,кухня —
app.php,повар — контроллер,
блюдо — ответ пользователю.
Понимание жизненного цикла Laravel помогает лучше дебажить, писать оптимизированный код и осознать, как фреймворк превращает обычный HTTP-запрос в готовую HTML-страницу.
👉 Читать статью
Библиотека пхпшника
#php_азбука
❤3👍2
Говорят, айтишника можно опознать по двум признакам: тёмная тема в IDE и 100+ вкладок в браузере, которые съели всю ОЗУ. Давайте проверим, на чём всё это крутится.
Расскажите в комментариях, какой у вас рабочий ноутбук? Что за модель, какой чип и сколько гигабайт памяти спасают вас от коллапса системы?
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱4
❗ Laravel-совет
Директива
В нашем примере директива
Библиотека пхпшника
#vardump
Директива
@env_required() позволяет проверять, что переменная среды установлена и имеет значение, отличное от null. Она может быть полезна для обеспечения того, чтобы приложение работало правильно только при наличии определенных переменных среды.В нашем примере директива
@env_required() используется для проверки переменной среды APP_KEY. Если переменная не установлена, будет выброшено исключение.Библиотека пхпшника
#vardump
👍6❤3👾1
👍19🥰3
Forwarded from Книги для программистов
В книге автор собрал все ключевые идеи реляционных СУБД — от понятия данных до логики работы транзакций. Тебя ждет фундаментальная теория и наглядная практика проектирования БД:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
💻 Подборка новостей по PHP за неделю:
🔹 PHP 8.5.0 RC2 — второй релиз-кандидат доступен для тестирования. Выход финальной версии всё ближе: разработчиков призывают проверять совместимость и сообщать о багах.
🔹 Closures в константных выражениях (PHP 8.5) — теперь можно использовать замыкания прямо в константах и как значения по умолчанию (например, в атрибутах). Это существенно расширяет выразительность языка.
🔹 Новый URI-экстеншен в PHP 8.5 — в стандартную библиотеку добавлен полноценный парсер URI, соответствующий RFC 3986 и WHATWG URL. Больше не нужно сторонних пакетов для корректного парсинга URL.
🔹 Laravel 12.34 — появился failover queue driver для отказоустойчивости очередей, улучшен полнотекстовый поиск в Scout и добавлена возможность откладывать выполнение HTTP batch-запросов.
🔹 Symfony 13–19 октября — продолжается полировка релизов 7.4 и 8.0, запущен сайт к 20-летию Symfony и опубликована первая статья серии New in Symfony 7.4.
Библиотека пхпшника
#свежак
🔹 PHP 8.5.0 RC2 — второй релиз-кандидат доступен для тестирования. Выход финальной версии всё ближе: разработчиков призывают проверять совместимость и сообщать о багах.
🔹 Closures в константных выражениях (PHP 8.5) — теперь можно использовать замыкания прямо в константах и как значения по умолчанию (например, в атрибутах). Это существенно расширяет выразительность языка.
🔹 Новый URI-экстеншен в PHP 8.5 — в стандартную библиотеку добавлен полноценный парсер URI, соответствующий RFC 3986 и WHATWG URL. Больше не нужно сторонних пакетов для корректного парсинга URL.
🔹 Laravel 12.34 — появился failover queue driver для отказоустойчивости очередей, улучшен полнотекстовый поиск в Scout и добавлена возможность откладывать выполнение HTTP batch-запросов.
🔹 Symfony 13–19 октября — продолжается полировка релизов 7.4 и 8.0, запущен сайт к 20-летию Symfony и опубликована первая статья серии New in Symfony 7.4.
Библиотека пхпшника
#свежак
😍3❤1👏1
💡 Совет по Laravel: Результат команды
Знаете ли вы, что Laravel позволяет определять колбеки, которые будут выполняться в зависимости от результата запланированной задачи? Это помогает регистрировать сбои или выполнять связанные действия в случае успеха 🚀
Библиотека пхпшника
#vardump
Знаете ли вы, что Laravel позволяет определять колбеки, которые будут выполняться в зависимости от результата запланированной задачи? Это помогает регистрировать сбои или выполнять связанные действия в случае успеха 🚀
Библиотека пхпшника
#vardump
🧠 Готовишься к собесам, а ноутбук еле тянет IDE?
Самое время прокачать скиллы и апгрейднуть железо!
Proglib Academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻
Купи любой наш курс до 15 ноября → пройди 2 недели обучения → напиши куратору #розыгрыш. Всё, ты в игре!
📚 Среди курсов:
▫️ Алгоритмы и структуры данных — топ для подготовки к собесам в Яндекс и FAANG.
▫️ Архитектуры и шаблоны проектирования — чтобы думать как senior.
▫️ Python, математика для DS, основы IT и другие направления.
👉 Принять участие
Самое время прокачать скиллы и апгрейднуть железо!
Proglib Academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻
Купи любой наш курс до 15 ноября → пройди 2 недели обучения → напиши куратору #розыгрыш. Всё, ты в игре!
📚 Среди курсов:
▫️ Алгоритмы и структуры данных — топ для подготовки к собесам в Яндекс и FAANG.
▫️ Архитектуры и шаблоны проектирования — чтобы думать как senior.
▫️ Python, математика для DS, основы IT и другие направления.
👉 Принять участие
😁4👾1
🧩 Enums в Laravel: конец магическим строкам
Если вы когда-либо писали
С выходом Laravel 12 они перестали быть просто “новинкой языка” — это теперь must-have инструмент для чистого, безопасного и предсказуемого кода.
💡 Зачем они нужны
Enums заменяют беспорядок из строк, флагов и констант.
— гарантируют типобезопасность: вы даёте переменной не просто строку, а определённое значение из “набора”.
— код становится само-документируемым: “это состояние” видно из названия enum-класса, а не приходится гуглить что означают разные статусы.
— легче поддержка: менее вероятно, что в коде появится “typo” или неизвестное состояние.
— интеграция с Laravel становится проще: например, enum-кастинг колонок модели, валидация enum-значения — меньше “шаблонного” кода.
🛠 Как мыслить без кода
Представьте: у вас есть список чётких, фиксированных значений — например, “ожидает”, “в работе”, “завершено”, “отменено”.
Раньше: множество строк, массивов, проверки типа
С Enums: “статус задачи” — это не просто строка, это экземпляр типа, который не может быть чем-то другим.
База данных остаётся привычной, интерфейсы — знакомыми, но логика приложения читается лучше.
📊 Что принесёт использование Enums
— меньше ошибок на проде (например: “неверное состояние”),
— лучше автодополнение и подсказки в IDE,
— меньше “магических строк” в коде,
— единое место для описания значений и поведения (если enum-тип расширить методами типа “label” или “сортировка”).
Разработчики отмечают, что применение Enums делает код более выразительным и легче рефакторить.
В контексте Laravel 12 это уже не эксперимент — это один из рекомендуемых подходов.
🎯 Когда начинать?
Если вы ещё не используете Enums, то:
— при новом проекте на Laravel 12/13 — смело включайте их “с самого начала”.
— при рефакторинге старого проекта — начните с ключевых участков: статусы, роли, состояние процесса.
— если используете строковые флаги или массивы “констант” — обратите внимание: Enums может стать шагом к более стабильной архитектуре.
📣 Общее настроение
Enums — это не просто синтаксический сахар. Это шаг к более выразительному, поддерживаемому и устойчивому коду.
Если вы программист-artisan, стремящийся не просто “сделать” приложение, а выстроить его красиво и последовательно — Enums это инструмент, который стоит в арсенале.
🔗 Medium
Библиотека пхпшника
Если вы когда-либо писали
status = 'pending' и потом искали, где же опечатались или где вдруг “Pending” и “pending” трактуются по-разному — добро пожаловать в мир нативных Enums в PHP 8.1.С выходом Laravel 12 они перестали быть просто “новинкой языка” — это теперь must-have инструмент для чистого, безопасного и предсказуемого кода.
💡 Зачем они нужны
Enums заменяют беспорядок из строк, флагов и констант.
— гарантируют типобезопасность: вы даёте переменной не просто строку, а определённое значение из “набора”.
— код становится само-документируемым: “это состояние” видно из названия enum-класса, а не приходится гуглить что означают разные статусы.
— легче поддержка: менее вероятно, что в коде появится “typo” или неизвестное состояние.
— интеграция с Laravel становится проще: например, enum-кастинг колонок модели, валидация enum-значения — меньше “шаблонного” кода.
🛠 Как мыслить без кода
Представьте: у вас есть список чётких, фиксированных значений — например, “ожидает”, “в работе”, “завершено”, “отменено”.
Раньше: множество строк, массивов, проверки типа
if status == 'completed'.С Enums: “статус задачи” — это не просто строка, это экземпляр типа, который не может быть чем-то другим.
База данных остаётся привычной, интерфейсы — знакомыми, но логика приложения читается лучше.
📊 Что принесёт использование Enums
— меньше ошибок на проде (например: “неверное состояние”),
— лучше автодополнение и подсказки в IDE,
— меньше “магических строк” в коде,
— единое место для описания значений и поведения (если enum-тип расширить методами типа “label” или “сортировка”).
Разработчики отмечают, что применение Enums делает код более выразительным и легче рефакторить.
В контексте Laravel 12 это уже не эксперимент — это один из рекомендуемых подходов.
🎯 Когда начинать?
Если вы ещё не используете Enums, то:
— при новом проекте на Laravel 12/13 — смело включайте их “с самого начала”.
— при рефакторинге старого проекта — начните с ключевых участков: статусы, роли, состояние процесса.
— если используете строковые флаги или массивы “констант” — обратите внимание: Enums может стать шагом к более стабильной архитектуре.
📣 Общее настроение
Enums — это не просто синтаксический сахар. Это шаг к более выразительному, поддерживаемому и устойчивому коду.
Если вы программист-artisan, стремящийся не просто “сделать” приложение, а выстроить его красиво и последовательно — Enums это инструмент, который стоит в арсенале.
🔗 Medium
Библиотека пхпшника
👍6❤1
Forwarded from Библиотека задач по PHP | тесты, код, задания
Архитектура — Dependency Injection & SOLID
Какой принцип SOLID здесь соблюдён?
Какой принцип SOLID здесь соблюдён?
Forwarded from Библиотека задач по PHP | тесты, код, задания
Какой принцип SOLID здесь соблюдён?
Anonymous Quiz
15%
Single Responsibility
9%
Open/Closed
54%
Dependency Inversion
22%
Interface Segregation
😁8🥱1