Сегодня хочу показать вам, как магические методы в PHP могут упростить жизнь, если использовать их с умом.
Многие знают о __construct() и __destruct(), но PHP предлагает целый арсенал магических методов - от __get() и __set() до __invoke() и __callStatic().
Например, рассмотрим кейс с динамическими свойствами:
class Config {
private array $data = [];
public function __get($name) {
return $this->data[$name] ?? null;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
}
$config = new Config();
$config->appName = 'MyApp';
echo $config->appName; // MyApp
Мы не определяли свойство appName, но с помощью __get() и __set() сделали объект гибким, почти как массив. Это удобно для конфигов, DTO и API-ответов.
Но! ⚠
Если переусердствовать - код становится магическим не только для PHP, но и для вас самого 😄
Отладка, автодополнение и читаемость страдают. Поэтому правило простое:
используйте магию осознанно.
👉 [|@php_be1]
Многие знают о __construct() и __destruct(), но PHP предлагает целый арсенал магических методов - от __get() и __set() до __invoke() и __callStatic().
Например, рассмотрим кейс с динамическими свойствами:
class Config {
private array $data = [];
public function __get($name) {
return $this->data[$name] ?? null;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
}
$config = new Config();
$config->appName = 'MyApp';
echo $config->appName; // MyApp
Мы не определяли свойство appName, но с помощью __get() и __set() сделали объект гибким, почти как массив. Это удобно для конфигов, DTO и API-ответов.
Но! ⚠
Если переусердствовать - код становится магическим не только для PHP, но и для вас самого 😄
Отладка, автодополнение и читаемость страдают. Поэтому правило простое:
используйте магию осознанно.
👉 [|@php_be1]
🚀 Не стройте ракету, пока не собрали бумажный самолёт
Один из главных рисков в запуске IT-продукта — застрять в бесконечной доработке и не выйти на рынок.
В комьюнити Короче, Капитан делают по-другому.
Челлендж: 12 запусков за 12 месяцев.
✅ Разработка и запуск — за 1 месяц
✅ Минимальные вложения (средний бюджет на продвижение — $150)
✅ Честный разбор: что получилось, а что — нет
Формула проста:
1 запуск = 1 функция = решение 1 проблемы
Три главных правила:
⚡️Проверенный спрос, а не догадки
⚡️ Быстрый запуск без перфекционизма
⚡️ Только США и ЕС — там платят за удобство
Канал Короче, Капитан показывает запуск, продвижение и доход по каждому продукту в реальном времени.
Без иллюзий, без теорий — только работающие подходы и реальные цифры.
👉 Подписаться: @its_capitan
@php_be1
Один из главных рисков в запуске IT-продукта — застрять в бесконечной доработке и не выйти на рынок.
В комьюнити Короче, Капитан делают по-другому.
Челлендж: 12 запусков за 12 месяцев.
✅ Разработка и запуск — за 1 месяц
✅ Минимальные вложения (средний бюджет на продвижение — $150)
✅ Честный разбор: что получилось, а что — нет
Формула проста:
1 запуск = 1 функция = решение 1 проблемы
Три главных правила:
⚡️Проверенный спрос, а не догадки
⚡️ Быстрый запуск без перфекционизма
⚡️ Только США и ЕС — там платят за удобство
Канал Короче, Капитан показывает запуск, продвижение и доход по каждому продукту в реальном времени.
Без иллюзий, без теорий — только работающие подходы и реальные цифры.
👉 Подписаться: @its_capitan
@php_be1
Отказоустойчивый драйвер очередей в Laravel 12.34
@php_be1
https://benjamincrozat.com/laravel-failover-queue-driver
@php_be1
https://benjamincrozat.com/laravel-failover-queue-driver
Benjamincrozat
The Laravel failover queue driver: stop losing jobs
Learn how to set up the Laravel failover queue driver so you don’t lose jobs when Redis, SQS, or another queue goes down. I walk you through a copy-paste setup, simple tests, and small gotchas.
This media is not supported in your browser
VIEW IN TELEGRAM
Nimbus — браузерный API-клиент для Laravel
Традиционные инструменты тестирования API требуют ручной настройки для каждой конечной точки. Nimbus устраняет эту проблему, автоматически обнаруживая маршруты Laravel, генерируя схемы на основе правил валидации и обрабатывая аутентификацию, файлы cookie и тестовые данные. Всё это можно сделать, не выходя из среды разработки.
https://github.com/sunchayn/nimbus
@php_be1
Традиционные инструменты тестирования API требуют ручной настройки для каждой конечной точки. Nimbus устраняет эту проблему, автоматически обнаруживая маршруты Laravel, генерируя схемы на основе правил валидации и обрабатывая аутентификацию, файлы cookie и тестовые данные. Всё это можно сделать, не выходя из среды разработки.
https://github.com/sunchayn/nimbus
@php_be1
📕Делаем тонкие контроллеры на Symfony. Валидация - PHP-разработчикам; Junior/Middle разработчикам, строящим API на Symfony; начинающим специалистам в асинхронной архитектуре
На открытом уроке 5 ноября в 20:00 мск мы разберёмся в принципах и методах разработки тонких контроллеров:
📗 На вебинаре:
1. Получите практические примеры построения эффективной архитектуры приложения.
2. Познакомитесь с базовыми механизмами валидации.
📘 В результате на практике изучите и освоите создание собственных constraint, а также сможете централизованно обрабатывать ошибки с помощью EventDispatcher/EventListener.
👉 Регистрация на урок и подробности о курсе Symfony Framework: https://clck.ru/3Q8Pq5
Все участники открытого урока получат скидку на курс "Symfony Framework"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 5 ноября в 20:00 мск мы разберёмся в принципах и методах разработки тонких контроллеров:
📗 На вебинаре:
1. Получите практические примеры построения эффективной архитектуры приложения.
2. Познакомитесь с базовыми механизмами валидации.
📘 В результате на практике изучите и освоите создание собственных constraint, а также сможете централизованно обрабатывать ошибки с помощью EventDispatcher/EventListener.
👉 Регистрация на урок и подробности о курсе Symfony Framework: https://clck.ru/3Q8Pq5
Все участники открытого урока получат скидку на курс "Symfony Framework"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Совет по Laravel💡
Schedule Shell Commands
Знаете ли вы, что Laravel Scheduler позволяет выполнять команды в операционной системе?
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Schedule Shell Commands
Знаете ли вы, что Laravel Scheduler позволяет выполнять команды в операционной системе?
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Большие проекты на Laravel
https://github.com/LaravelDaily/Large-Laravel-PHP-Project-Examples
@php_be1
https://github.com/LaravelDaily/Large-Laravel-PHP-Project-Examples
@php_be1
Профилирование PHP (Laravel) приложений с xhprof. Учимся искать ботлнеки
Вам знакомо то чувство, когда ваш PHP-код отрабатывает за дофига миллисекунд, а иногда и секунд, и вы не можете понять, в чём дело и где тот говнокод, который я (или не я, а мой коллега) когда-то написал? В этой статье хочу немного рассказать на примере профайлинга PHP-кода, как перестать гадать и начать выявлять боттлнеки, которые всё тормозят. Короче, помочь поискать говнокод. После этого у многих из вас появится понимание, как дать своему приложению прирост производительности с помощью крутых инструментов профайлинга, таких как xhprof и Buggregator.
https://habr.com/ru/articles/823156/
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Вам знакомо то чувство, когда ваш PHP-код отрабатывает за дофига миллисекунд, а иногда и секунд, и вы не можете понять, в чём дело и где тот говнокод, который я (или не я, а мой коллега) когда-то написал? В этой статье хочу немного рассказать на примере профайлинга PHP-кода, как перестать гадать и начать выявлять боттлнеки, которые всё тормозят. Короче, помочь поискать говнокод. После этого у многих из вас появится понимание, как дать своему приложению прирост производительности с помощью крутых инструментов профайлинга, таких как xhprof и Buggregator.
https://habr.com/ru/articles/823156/
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Совет по Laravel💡
Знаете ли вы, что метод whereAny(), может осуществлять поиск по нескольким столбцам, используя логику OR.
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Знаете ли вы, что метод whereAny(), может осуществлять поиск по нескольким столбцам, используя логику OR.
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Плагины к PhpStorm, о которых вы могли не знать
@php_be1
https://blog.jetbrains.com/phpstorm/2025/11/phpstorm-plugins-you-might-not-know/
@php_be1
https://blog.jetbrains.com/phpstorm/2025/11/phpstorm-plugins-you-might-not-know/
The JetBrains Blog
PhpStorm Plugins You Might Not Know | The PhpStorm Blog
PhpStorm comes with a ton of built-in features, and you can add even more with plugins. They bring new languages, tools, and small improvements that make everyday coding smoother. Many of the best
📕CQRS и идемпотентность в Symfony: пишем надёжные API - PHP-разработчикам; Junior/Middle разработчикам, строящим API на Symfony; начинающим специалистам в асинхронной архитектуре
На открытом уроке 11 ноября в 20:00 мск мы разберёмся в паттернах CQRS в Symfony и поговорим об идемпотентности HTTP-методов:
📗 На вебинаре:
1. Поймете, как применять CQRS в Symfony без лишней сложности.
2. Научитесь проектировать идемпотентные эндпоинты и реализовывать их средствами фреймворка.
📘 В результате на практике изучите и освоите написание и защиту API от дублей и ошибок при асинхронной обработке, а также получите методы, которые можно сразу взять в работу.
👉 Регистрация на урок и подробности о курсе Symfony Framework: https://clck.ru/3QENpv
Все участники открытого урока получат скидку на курс "Symfony Framework"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 11 ноября в 20:00 мск мы разберёмся в паттернах CQRS в Symfony и поговорим об идемпотентности HTTP-методов:
📗 На вебинаре:
1. Поймете, как применять CQRS в Symfony без лишней сложности.
2. Научитесь проектировать идемпотентные эндпоинты и реализовывать их средствами фреймворка.
📘 В результате на практике изучите и освоите написание и защиту API от дублей и ошибок при асинхронной обработке, а также получите методы, которые можно сразу взять в работу.
👉 Регистрация на урок и подробности о курсе Symfony Framework: https://clck.ru/3QENpv
Все участники открытого урока получат скидку на курс "Symfony Framework"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Совет по Laravel💡
Знаете ли вы... В Laravel есть метод withProgressBar(), который позволяет добавлять прогресс-бары к консольным командам.
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Знаете ли вы... В Laravel есть метод withProgressBar(), который позволяет добавлять прогресс-бары к консольным командам.
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Совет по Laravel💡
Если вы хотите автоматически удалять старые записи, воспользуйтесь трейтом Prunable. Не нужно писать собственные команды.
#Laravel
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Если вы хотите автоматически удалять старые записи, воспользуйтесь трейтом Prunable. Не нужно писать собственные команды.
#Laravel
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Совет по Laravel💡
Уникальные идентификаторы запросов
Вам когда-нибудь требовалось создать код уникального идентификатора для запроса, например, для целей кэширования? Laravel поставляется с методом «fingerprint», который позволяет вам генерировать уникальный идентификатор для ваших запросов 🚀
#laravel
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]
Уникальные идентификаторы запросов
Вам когда-нибудь требовалось создать код уникального идентификатора для запроса, например, для целей кэширования? Laravel поставляется с методом «fingerprint», который позволяет вам генерировать уникальный идентификатор для ваших запросов 🚀
#laravel
📲 Мы в MAX https://max.ru/php_be1
👉 [|@php_be1]