🎲 How to: Генерировать случайные Enum-значения с Faker в PHP 8.1+
PHP 8.1 принес нативные Enum, а Faker — идеальный инструмент для генерации тестовых данных. Вместе они позволяют быстро и безопасно создавать реалистичные значения для сидов и фабрик.
В статье показано, как:
— определить Enum,
— установить и настроить Faker,
— сгенерировать случайные Enum-значения,
— использовать всё это в Laravel Factory.
Типобезопасно, просто и без хардкода. 🚀
🔗 Ссылка на статью
Библиотека пхпшника
PHP 8.1 принес нативные Enum, а Faker — идеальный инструмент для генерации тестовых данных. Вместе они позволяют быстро и безопасно создавать реалистичные значения для сидов и фабрик.
В статье показано, как:
— определить Enum,
— установить и настроить Faker,
— сгенерировать случайные Enum-значения,
— использовать всё это в Laravel Factory.
Типобезопасно, просто и без хардкода. 🚀
🔗 Ссылка на статью
Библиотека пхпшника
🚀 PHP-лайфхак: Оптимизируйте автозагрузку с Composer
Если вы хотите, чтобы ваш PHP-код загружался быстрее, особенно на продакшене, стоит обратить внимание на оптимизацию автозагрузки. Ниже — что это значит и как настроить.
🔍 Что такое оптимизация автозагрузки в Composer
По умолчанию Composer формирует автозагрузчик так, чтобы было удобно в разработке — он может на лету проверять файловую систему, искать файлы классов и т.д. Но это добавляет накладные расходы при каждом запросе.
Чтобы ускорить автозагрузку, Composer предлагает несколько уровней оптимизации:
Уровень 1 — Class map generation: вместо PSR-4/PSR-0 правил генерируется готовая карта классов (classmap), что позволяет автозагрузчику сразу «знать», где находится файл.
Уровень 2/A — Authoritative class maps: означает, что если класс не найден в classmap — дальнейшем поиску по файловой системе не доверяют. Это ещё быстрее, но требует, чтобы все классы были заранее включены в карту.
Уровень 2/B — APCu cache fallback: использует APCu-кеш для кеширования “класс найден / не найден”, ускоряя автозагрузку без полного отключения файловой системы.
⚙️ Как правильно настроить
Вот шаги, которые можно выполнить в вашем проекте:
1. В
Это включает optimisation level 1.
2. При установке/обновлении запустите Composer с флагом
Если вы на продакшене — лучше исключить пакеты для разработки (
3. Для ещё большей оптимизации (если вы уверены, что структура проекта окончательная и классов добавляться не будет “по-ходу”):
Это включает уровень 2/A.
4. Если доступен APCu, можно рассмотреть вариант 2/B:
Но тут нужно, чтобы APCu был установлен и настроен.
🧠 Когда это применять и на что обратить внимание
✅ На продакшене — оптимизация автозагрузки почти всегда повышение производительности, особенно в больших проектах.
⚠️ В разработке — будьте осторожны: если вы часто добавляете/удаляете/переименовываете классы, оптимизированный classmap может “не видеть” новые файлы до повторного
📂 Убедитесь, что все классы соответствуют PSR-4/PSR-0 и названы корректно — иначе могут быть проблемы при уровне 2 оптимизации.
🐸 Библиотека пхпшника
Если вы хотите, чтобы ваш PHP-код загружался быстрее, особенно на продакшене, стоит обратить внимание на оптимизацию автозагрузки. Ниже — что это значит и как настроить.
🔍 Что такое оптимизация автозагрузки в Composer
По умолчанию Composer формирует автозагрузчик так, чтобы было удобно в разработке — он может на лету проверять файловую систему, искать файлы классов и т.д. Но это добавляет накладные расходы при каждом запросе.
Чтобы ускорить автозагрузку, Composer предлагает несколько уровней оптимизации:
Уровень 1 — Class map generation: вместо PSR-4/PSR-0 правил генерируется готовая карта классов (classmap), что позволяет автозагрузчику сразу «знать», где находится файл.
Уровень 2/A — Authoritative class maps: означает, что если класс не найден в classmap — дальнейшем поиску по файловой системе не доверяют. Это ещё быстрее, но требует, чтобы все классы были заранее включены в карту.
Уровень 2/B — APCu cache fallback: использует APCu-кеш для кеширования “класс найден / не найден”, ускоряя автозагрузку без полного отключения файловой системы.
⚙️ Как правильно настроить
Вот шаги, которые можно выполнить в вашем проекте:
1. В
composer.json добавьте в раздел "config":"config": {
"optimize-autoloader": true
}Это включает optimisation level 1.
2. При установке/обновлении запустите Composer с флагом
-o / --optimize-autoloader (или -o):composer install --no-dev -o
Если вы на продакшене — лучше исключить пакеты для разработки (
--no-dev). 3. Для ещё большей оптимизации (если вы уверены, что структура проекта окончательная и классов добавляться не будет “по-ходу”):
composer dump-autoload --classmap-authoritative --no-dev
Это включает уровень 2/A.
4. Если доступен APCu, можно рассмотреть вариант 2/B:
composer install --optimize-autoloader --apcu-autoloader
Но тут нужно, чтобы APCu был установлен и настроен.
🧠 Когда это применять и на что обратить внимание
✅ На продакшене — оптимизация автозагрузки почти всегда повышение производительности, особенно в больших проектах.
⚠️ В разработке — будьте осторожны: если вы часто добавляете/удаляете/переименовываете классы, оптимизированный classmap может “не видеть” новые файлы до повторного
dump-autoload. 📂 Убедитесь, что все классы соответствуют PSR-4/PSR-0 и названы корректно — иначе могут быть проблемы при уровне 2 оптимизации.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🙏1
Когда ответственность встречается с делегированием — рождается главный миф разработки.
— Баги находятся на этапе разработки
— Быстрый feedback loop
— Рефакторинг без страха
— Разработчик = ответственность за качество
— Быстрее пишу код без тестов
— QA всё равно найдёт баги
— "Я же не тестировщик"
— Баги уходят в прод, но это не моя вина
Голосуем реакциями:
👍 — Пишу unit-тесты перед коммитом
❤️ — Тесты есть, но не всегда
🤔 — QA справится, они для этого есть
🔥 — Продакшн и есть тестовая среда
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21🔥20👍9🤔8🌚3
💬Еще с Laravel 8 появился
Вам больше не нужно писать пользовательские команды
Библиотека пхпшника
#vardump
Prunable. С его помощью вы можете удалять старые модели по расписанию.Вам больше не нужно писать пользовательские команды
Библиотека пхпшника
#vardump
🔥4
📘 Хочешь в Data Science, но есть пробелы в знаниях математики?
Мы сделали экспресс-курс «Математика для Data Science», который за 2 месяца даст тебе фундамент, без которого ни одна ML-модель не взлетит 🚀
Что тебя ждёт:
🔹 живые вебинары с экспертами (НИУ ВШЭ, SberAI, Wildberries&Russ);
🔹 практика в Python, квизы и проверка заданий экспертами;
🔹 матрицы, регрессии, вероятности и статистика: всё на примерах из реальных задач;
🔹 старт — 4 декабря.
🔥 Не упусти халяву: сейчас 40% до 30 ноября
👉 Записаться на курс
Мы сделали экспресс-курс «Математика для Data Science», который за 2 месяца даст тебе фундамент, без которого ни одна ML-модель не взлетит 🚀
Что тебя ждёт:
🔹 живые вебинары с экспертами (НИУ ВШЭ, SberAI, Wildberries&Russ);
🔹 практика в Python, квизы и проверка заданий экспертами;
🔹 матрицы, регрессии, вероятности и статистика: всё на примерах из реальных задач;
🔹 старт — 4 декабря.
🔥 Не упусти халяву: сейчас 40% до 30 ноября
👉 Записаться на курс
Forwarded from Библиотека программиста | программирование, кодинг, разработка
$ cat inventory.csv | column -t -s,
— простая команда на случай, когда надо быстро и в удобном формате прочитать CSV-файл в терминале
Флаг
-s указывает на использование запятых в качестве разделителей, а -t форматирует выходные данные в чистую таблицу.Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍4
Forwarded from Книги для программистов
PHP, MySQL и немного JavaScript — звучит как начало старого доброго веба? А теперь добавь туда React, Node.js, Flexbox и Ajax, и у тебя получится не просто сайт, а полноценное веб-приложение, которое работает и на десктопе, и на мобилке.
Эта книга — как руководство для фуллстэка-новичка. Автор пошагово ведёт от простого HTML-каркаса до живого динамического сайта, где всё связано с базой, красиво оформлено и не падает при первом запросе.
💡 Ты научишься:
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4❤1👍1
💻 Подборка новостей по PHP за неделю:
🔹 PHP 8.5.0 RC4 — вышел финальный релиз-кандидат PHP 8.5 перед стабильным релизом. Команда призывает разработчиков тестировать и помогать находить последние проблемы.
🔹 Xdebug Update (октябрь 2025) — опубликован свежий отчёт о развитии Xdebug за два месяца: улучшения, эксперименты и планы по дальнейшей оптимизации инструмента.
🔹 Laravel 12.37 — добавлен background queue driver для фоновой обработки заданий, метод
🔹 Полезные плагины для PhpStorm — JetBrains напомнили о малоизвестных, но мощных расширениях, которые добавляют языки, инструменты и улучшения рабочего процесса.
🔹 Symfony 7.3.6 — очередное maintenance-обновление с исправлениями и улучшениями стабильности.
🔹 Symfony 3–9 ноября 2025 — продолжается шлифовка Symfony 7.4 и 8.0, опубликованы новые детали выступлений на SymfonyCon Amsterdam 2025.
Библиотека пхпшника
#свежак
🔹 PHP 8.5.0 RC4 — вышел финальный релиз-кандидат PHP 8.5 перед стабильным релизом. Команда призывает разработчиков тестировать и помогать находить последние проблемы.
🔹 Xdebug Update (октябрь 2025) — опубликован свежий отчёт о развитии Xdebug за два месяца: улучшения, эксперименты и планы по дальнейшей оптимизации инструмента.
🔹 Laravel 12.37 — добавлен background queue driver для фоновой обработки заданий, метод
insert() в фабриках, новый строковый метод ucwords() и другие улучшения производительности и удобства.🔹 Полезные плагины для PhpStorm — JetBrains напомнили о малоизвестных, но мощных расширениях, которые добавляют языки, инструменты и улучшения рабочего процесса.
🔹 Symfony 7.3.6 — очередное maintenance-обновление с исправлениями и улучшениями стабильности.
🔹 Symfony 3–9 ноября 2025 — продолжается шлифовка Symfony 7.4 и 8.0, опубликованы новые детали выступлений на SymfonyCon Amsterdam 2025.
Библиотека пхпшника
#свежак
⬆️ Метод «json»
Если вы используете Laravel 10 и выше, есть элегантный способ чтения JSON-файлов с помощью
Библиотека пхпшника
#vardump
Если вы используете Laravel 10 и выше, есть элегантный способ чтения JSON-файлов с помощью
File::json(). Вы также можете передать флаги, которые вы обычно передаете в json_decode(), на случай, если вы хотите выбросить исключение 🚀Библиотека пхпшника
#vardump
🚀 В IT ценится не перфекционизм, а движение вперёд, и если вы давно откладывали обучение — самое время начать.
❤️ Proglib Academy продлевает розыгрыш MacBook Pro 14 до 30 ноября!
Что нужно:
⚡️ выбрать курс;
⚡️ пройти минимум две недели обучения (можно за два вечера);
⚡️ написать куратору #розыгрыш;
⚡️ забрать макбук.
🎓 Курсы, которые участвуют
👉 Участвовать
❤️ Proglib Academy продлевает розыгрыш MacBook Pro 14 до 30 ноября!
Что нужно:
⚡️ выбрать курс;
⚡️ пройти минимум две недели обучения (можно за два вечера);
⚡️ написать куратору #розыгрыш;
⚡️ забрать макбук.
🎓 Курсы, которые участвуют
👉 Участвовать
🧠 Laravel after() — After What, Exactly?
Многие считают, что метод
Логично? Да.
Но — неправильно.
На самом деле
И это легко превращается в источник неожиданных багов и лишних SQL-запросов.
📉 Пример из практики:
даже при невалидных данных (
А если в теле запроса прилетит массив вместо строки — получите 500-ку и «Array to string conversion».
✅ Как обезопаситься: не делать тяжёлые проверки (например, через БД) прямо в Form Request.
Логика валидации данных — в Form Request, бизнес-валидация — в сервисах.
Так код станет быстрее, чище и проще в тестировании.
👉 Примеры в статье
Библиотека пхпшника
Многие считают, что метод
after() в Form Request срабатывает после успешной валидации.Логично? Да.
Но — неправильно.
На самом деле
after() вызывается после завершения валидации, даже если она провалилась.И это легко превращается в источник неожиданных багов и лишних SQL-запросов.
📉 Пример из практики:
даже при невалидных данных (
brand_id = «Hepu») Laravel всё равно лезет в базу:select exists(select * from products where article = ...)А если в теле запроса прилетит массив вместо строки — получите 500-ку и «Array to string conversion».
✅ Как обезопаситься: не делать тяжёлые проверки (например, через БД) прямо в Form Request.
Логика валидации данных — в Form Request, бизнес-валидация — в сервисах.
Так код станет быстрее, чище и проще в тестировании.
👉 Примеры в статье
Библиотека пхпшника
Forwarded from Библиотека задач по PHP | тесты, код, задания
Что выведет код в PHP 8?
Anonymous Quiz
36%
Fatal error: Uncaught UnhandledMatchError: Unhandled match value of type null
59%
вариант 0
5%
Вывод условий 1,2,3
🥱9👍7
⚙️ Symfony HttpClient: 4 продакшн-паттерна, которые превращают интеграции в архитектуру
Когда интеграции перестают быть «одним запросом к API», важно думать не о том, как отправить запрос, а как жить с тысячами запросов ежедневно. Ниже — четыре паттерна на Symfony 7 и PHP 8, которые решают реальные задачи: скорость, масштаб, аудит и устойчивость.
1) Fire-and-Forget через Messenger — мгновенный отклик без «спиннеров»
🎯 Сценарий: после регистрации отправляем данные в CRM/рассылку/welcome-email; часть сервисов медленные или нестабильные.
🧠 Идея: контроллер завершает пользовательский сценарий сразу, интеграции уходят в очередь; ретраи, dead-letter и идемпотентность — на уровне Messenger.
✅ Что получить на выходе:
⚡ Стабильно быстрый ответ API/веб-слоя.
🛡️ Устойчивость к временным сбоям внешних сервисов.
🔁 Управляемые политики повторов и отложенных задач.
2) Мульти-тенант фабрика — тысячи «скоупнутых» клиентов из одного шаблона
🎯 Сценарий: SaaS с сотнями/тысячами клиентов, у каждого свой base URL и заголовки авторизации.
🧠 Идея: из «дефолтного» клиента создавать легковесные экземпляры для арендатора на лету (scoped options).
✅ Преимущества:
📄 Отсутствие «километрового» YAML с клиентами.
🧭 Единые таймауты/политики по умолчанию + точечные переопределения.
🪝 Простая инъекция фабрики в доменные сервисы (например, синхронизация каталога по всем арендаторам).
3) Глобальный наблюдатель — полный аудит каждого HTTP-взаимодействия
🎯 Сценарий: сотни вызовов из десятков сервисов; нужно видеть, что отправили/получили и за сколько; профайлер недоступен в проде.
🧠 Идея: подписаться на события клиента (отправка/получение), писать аккуратные прод-логи: метод, URL, статус, длительность; при необходимости — заголовки и усечённые тела.
✅ Результат:
🔎 Единый «след» всех внешних коммуникаций.
🧯 Разбор инцидентов без догадок.
📈 Метрики латентности для SLA и алёртинга.
⚠️ Замечание: соблюдать гигиену логирования (маскирование PII/секретов, контроль размера логов).
4) Data Stream — гигабайтные файлы без переполнения памяти
🎯 Сценарий: бэкапы 2–5 GB, большие экспорты или отчёты «на лету».
🧠 Идея: передавать в запрос поток (ресурс или генератор), чтобы клиент читал и отправлял данные порциями, без загрузки всего в память.
✅ Плюсы:
🧊 Драматическое снижение пикового потребления RAM.
🧱 Устойчивые фоновые джобы.
🧵 Потоковая генерация (CSV/NDJSON) прямо из БД.
Где это особенно полезно
👤 UX-критичные пути: регистрация, чек-аут, действия в админке.
🌐 Интеграционные хабы с десятками поставщиков/маркетплейсов.
🕵️ Сложные расследования инцидентов и соответствие требованиям аудита.
💽 Бэкап и архивирование, массовые выгрузки, долгие отчёты.
Итог
⚡ Скорость: асинхронное делегирование устраняет «узкие места» UX.
🏗️ Масштаб: фабрика клиентов упрощает мульти-тенант и рост интеграций.
🔍 Надёжность: событийный аудит даёт прозрачность и измеримость.
💾 Стабильность: стриминг больших данных держит память под контролем.
Если вы всё ещё используете HttpClient как «обёртку над cURL», самое время сделать его полноценным архитектурным элементом. Делитесь в комментариях своими приёмами: ретраи и джиттер, circuit-breaker, автоперевыпуск OAuth2, контрактные тесты, эмуляция «флакнутых» API — что сработало у вас в проде?
🔗 Читать статью
Библиотека пхпшника
Когда интеграции перестают быть «одним запросом к API», важно думать не о том, как отправить запрос, а как жить с тысячами запросов ежедневно. Ниже — четыре паттерна на Symfony 7 и PHP 8, которые решают реальные задачи: скорость, масштаб, аудит и устойчивость.
1) Fire-and-Forget через Messenger — мгновенный отклик без «спиннеров»
🎯 Сценарий: после регистрации отправляем данные в CRM/рассылку/welcome-email; часть сервисов медленные или нестабильные.
🧠 Идея: контроллер завершает пользовательский сценарий сразу, интеграции уходят в очередь; ретраи, dead-letter и идемпотентность — на уровне Messenger.
✅ Что получить на выходе:
⚡ Стабильно быстрый ответ API/веб-слоя.
🛡️ Устойчивость к временным сбоям внешних сервисов.
🔁 Управляемые политики повторов и отложенных задач.
2) Мульти-тенант фабрика — тысячи «скоупнутых» клиентов из одного шаблона
🎯 Сценарий: SaaS с сотнями/тысячами клиентов, у каждого свой base URL и заголовки авторизации.
🧠 Идея: из «дефолтного» клиента создавать легковесные экземпляры для арендатора на лету (scoped options).
✅ Преимущества:
📄 Отсутствие «километрового» YAML с клиентами.
🧭 Единые таймауты/политики по умолчанию + точечные переопределения.
🪝 Простая инъекция фабрики в доменные сервисы (например, синхронизация каталога по всем арендаторам).
3) Глобальный наблюдатель — полный аудит каждого HTTP-взаимодействия
🎯 Сценарий: сотни вызовов из десятков сервисов; нужно видеть, что отправили/получили и за сколько; профайлер недоступен в проде.
🧠 Идея: подписаться на события клиента (отправка/получение), писать аккуратные прод-логи: метод, URL, статус, длительность; при необходимости — заголовки и усечённые тела.
✅ Результат:
🔎 Единый «след» всех внешних коммуникаций.
🧯 Разбор инцидентов без догадок.
📈 Метрики латентности для SLA и алёртинга.
⚠️ Замечание: соблюдать гигиену логирования (маскирование PII/секретов, контроль размера логов).
4) Data Stream — гигабайтные файлы без переполнения памяти
🎯 Сценарий: бэкапы 2–5 GB, большие экспорты или отчёты «на лету».
🧠 Идея: передавать в запрос поток (ресурс или генератор), чтобы клиент читал и отправлял данные порциями, без загрузки всего в память.
✅ Плюсы:
🧊 Драматическое снижение пикового потребления RAM.
🧱 Устойчивые фоновые джобы.
🧵 Потоковая генерация (CSV/NDJSON) прямо из БД.
Где это особенно полезно
👤 UX-критичные пути: регистрация, чек-аут, действия в админке.
🌐 Интеграционные хабы с десятками поставщиков/маркетплейсов.
🕵️ Сложные расследования инцидентов и соответствие требованиям аудита.
💽 Бэкап и архивирование, массовые выгрузки, долгие отчёты.
Итог
⚡ Скорость: асинхронное делегирование устраняет «узкие места» UX.
🏗️ Масштаб: фабрика клиентов упрощает мульти-тенант и рост интеграций.
🔍 Надёжность: событийный аудит даёт прозрачность и измеримость.
💾 Стабильность: стриминг больших данных держит память под контролем.
Если вы всё ещё используете HttpClient как «обёртку над cURL», самое время сделать его полноценным архитектурным элементом. Делитесь в комментариях своими приёмами: ретраи и джиттер, circuit-breaker, автоперевыпуск OAuth2, контрактные тесты, эмуляция «флакнутых» API — что сработало у вас в проде?
🔗 Читать статью
Библиотека пхпшника
❤4👍1
🎓 Экспресс-курс «Математика для Data Science» стартует 4 декабря
Этот курс для вас, если вы:
🧑💻 Программист
Когда нужно понять, что происходит «под капотом» ML-алгоритмов.
📊 Начинающий DS / аналитик / студент
Чтобы закрыть теорию, подтянуть фундамент и собрать портфолио.
📈 Смежный специалист
Чтобы уверенно работать с моделями, статистикой и гипотезами.
🎁 Сейчас лучший момент стартовать:
— скидка 40% на курс до конца ноября
— можно пройти бесплатный тест на знание основ математики
👉 Записаться на курс
Этот курс для вас, если вы:
🧑💻 Программист
Когда нужно понять, что происходит «под капотом» ML-алгоритмов.
📊 Начинающий DS / аналитик / студент
Чтобы закрыть теорию, подтянуть фундамент и собрать портфолио.
📈 Смежный специалист
Чтобы уверенно работать с моделями, статистикой и гипотезами.
🎁 Сейчас лучший момент стартовать:
— скидка 40% на курс до конца ноября
— можно пройти бесплатный тест на знание основ математики
👉 Записаться на курс
Phiki
Это подсветка синтаксиса, написанная на PHP. Он использует грамматические файлы TextMate и темы Visual Studio Code для генерации кода с подсветкой синтаксиса для веб-страниц и терминалов.
🔗 Github
Библиотека пхпшника
#инструменты
Это подсветка синтаксиса, написанная на PHP. Он использует грамматические файлы TextMate и темы Visual Studio Code для генерации кода с подсветкой синтаксиса для веб-страниц и терминалов.
🔗 Github
Библиотека пхпшника
#инструменты
GitHub
GitHub - phikiphp/phiki: Syntax highlighting powered by TextMate grammars in PHP.
Syntax highlighting powered by TextMate grammars in PHP. - phikiphp/phiki
👍5
🎯 Podlodka PHP Crew — сезон о скорости. Как ускорить не только код, но и собственную работу?
Новый сезон онлайн-конференции Podlodka PHP Crew (1–5 декабря) посвящён тому, как делать больше за то же время — без стресса и овертаймов.
📌 В программе:
⚙️ Background-агенты в разработке — Пётр Мязин («Пятиминутка PHP») покажет, как построить процесс вокруг ИИ-инструментов.
🚦Светофоры для разработчиков — Ярослав Тарасов (Skyeng) расскажет, как ускорить обратную связь от коммита до продакшена.
🔥Баланс фич и техдолга — Дмитрий Кириллов поделится холиварным кейсом «100% фичи, 0% техдолг».
🧩 От промпта к продакшену — Павел Бучнев (Spiral Scout) объяснит, почему пора мыслить контекстами, а не только промптами.
⚡️Практика, кейсы и новые подходы, которые экономят часы и силы.
🔗 Подключайтесь с 1 декабря: https://podlodka.io/phpcrew
По промокоду proglib получите скидку🎁
Новый сезон онлайн-конференции Podlodka PHP Crew (1–5 декабря) посвящён тому, как делать больше за то же время — без стресса и овертаймов.
📌 В программе:
⚙️ Background-агенты в разработке — Пётр Мязин («Пятиминутка PHP») покажет, как построить процесс вокруг ИИ-инструментов.
🚦Светофоры для разработчиков — Ярослав Тарасов (Skyeng) расскажет, как ускорить обратную связь от коммита до продакшена.
🔥Баланс фич и техдолга — Дмитрий Кириллов поделится холиварным кейсом «100% фичи, 0% техдолг».
🧩 От промпта к продакшену — Павел Бучнев (Spiral Scout) объяснит, почему пора мыслить контекстами, а не только промптами.
⚡️Практика, кейсы и новые подходы, которые экономят часы и силы.
🔗 Подключайтесь с 1 декабря: https://podlodka.io/phpcrew
🎯 How to: Создавать и использовать кастомные исключения в PHP
Если вы уже уверены с базами
В статье раскрывается:
🔸 когда стоит использовать собственные исключения;
🔸 как добавить им полезные свойства и методы;
🔸 как организовать иерархию исключений для крупных систем.
🔗 Читать статью (Medium)
Библиотека пхпшника
Если вы уже уверены с базами
try–catch, то время прокачать обработку ошибок на новый уровень с помощью кастомных исключений. Анонимный тип Exception допускает ловлю всего — а специализированные классы позволяют явно указать, что именно пошло не так.В статье раскрывается:
🔸 когда стоит использовать собственные исключения;
🔸 как добавить им полезные свойства и методы;
🔸 как организовать иерархию исключений для крупных систем.
🔗 Читать статью (Medium)
Библиотека пхпшника
🥱3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
🥱7❤2