Inside the Laravel Service Container
https://wendelladriel.com/blog/inside-the-laravel-service-container
@php_be1
https://wendelladriel.com/blog/inside-the-laravel-service-container
@php_be1
Часто используемые способы взаимодействия с релейшенами Laravel и их улучшение
1) Первый
Product::query()
- ->with([
- 'attribute' => fn (Builder $query) => $query->select(['id', 'title'])
- ])
- ->whereHas('attribute');
+ ->withWhereHas('attribute:id,title')
2) Второй
Product::query()
- ->whereHas('attribute', fn (Builder $query) => $query
- ->where('id', $id)
- );
+ ->whereRelation('attribute', 'id', $id)
3) Третий
Product::query()
- ->with([
- 'attribute' => fn (Builder $query) => $query->select(['id', 'title'])
- ])
- ->whereHas('attribute', fn (Builder $query) => $query
- ->where('id', $id)
- );
+ ->with('attribute:id,title')
+ ->whereRelation('attribute', 'id', $id)
@php_be1
1) Первый
Product::query()
- ->with([
- 'attribute' => fn (Builder $query) => $query->select(['id', 'title'])
- ])
- ->whereHas('attribute');
+ ->withWhereHas('attribute:id,title')
2) Второй
Product::query()
- ->whereHas('attribute', fn (Builder $query) => $query
- ->where('id', $id)
- );
+ ->whereRelation('attribute', 'id', $id)
3) Третий
Product::query()
- ->with([
- 'attribute' => fn (Builder $query) => $query->select(['id', 'title'])
- ])
- ->whereHas('attribute', fn (Builder $query) => $query
- ->where('id', $id)
- );
+ ->with('attribute:id,title')
+ ->whereRelation('attribute', 'id', $id)
@php_be1
SQL performance improvements: finding the right queries to fix
https://ohdear.app/news-and-updates/sql-performance-improvements-finding-the-right-queries-to-fix-part-1
@php_be1
https://ohdear.app/news-and-updates/sql-performance-improvements-finding-the-right-queries-to-fix-part-1
@php_be1
💡Совет по Laravel
Определение языка пользователя
Laravel использует компонент HttpFoundation из Symfony, который предоставляет полезные возможности. Если вы работаете с локализацией и нужно определить предпочитаемый язык пользователя, просто вызовите метод getPreferredLanguage 🚀
👉 [|@php_be1]
Определение языка пользователя
Laravel использует компонент HttpFoundation из Symfony, который предоставляет полезные возможности. Если вы работаете с локализацией и нужно определить предпочитаемый язык пользователя, просто вызовите метод getPreferredLanguage 🚀
👉 [|@php_be1]
Использование файберов в PHP
PHP и асинхронность. Такая комбинация долгие годы казалась невозможной, ведь PHP прочно ассоциировался с блокирующим подходом и синхронным выполнением скриптов «от запроса до ответа». С выходом PHP 8.1 ситуация несколько изменилась — появилась возможность реализовать асинхронность в PHP на основе файберов. Но есть нюанс — вопрос о том, действительно ли PHP с приходом файберов стал асинхронным, по-прежнему для многих остается открытым.
@php_be1
https://habr.com/ru/companies/docdoc/articles/941364/
PHP и асинхронность. Такая комбинация долгие годы казалась невозможной, ведь PHP прочно ассоциировался с блокирующим подходом и синхронным выполнением скриптов «от запроса до ответа». С выходом PHP 8.1 ситуация несколько изменилась — появилась возможность реализовать асинхронность в PHP на основе файберов. Но есть нюанс — вопрос о том, действительно ли PHP с приходом файберов стал асинхронным, по-прежнему для многих остается открытым.
@php_be1
https://habr.com/ru/companies/docdoc/articles/941364/
Хабр
Использование файберов в PHP: разбор от команды СберЗдоровье
PHP и асинхронность. Такая комбинация долгие годы казалась невозможной, ведь PHP прочно ассоциировался с блокирующим подходом и синхронным выполнением скриптов «от запроса до ответа». С выходом PHP...
Laravel Notifications: dynamic channels, priority, and delayed sending
@php_be1
https://crnkovic.me/laravel-notifications-on-steroids
@php_be1
https://crnkovic.me/laravel-notifications-on-steroids
crnkovic.me
Laravel Notifications: dynamic channels, priority, and delayed sending - Josip Crnković
Learn how to make Laravel notifications super powerful: multi-channel, delayed sending, and customizable.
Podlodka Crew 29 сентября запускает новую конференцию — Podlodka AI Crew (https://podlodka.io/aicrew?utm_campaign=early_bird_ai_crew_1&utm_source=telegram&utm_medium=paid&utm_content=laravel_it&erid=2SDnjcnF3ka)🥳
Если вы ищете практические знания без воды — это оно. Подлодка собрала экспертов, которые покажут, что реально работает в коде, пайплайнах и командных процессах.
В программе:
📊«AI, ML, DS, нейросети: без хайпа в терминах» — разберём границы применимости подходов, чтобы отличать пользу от шума (Алексей Шаграев, ex-Google, ex-Yandex).
👥 Круглый стол «AI-культура в команде» — инструменты и практики, сопротивление/принятие, влияние на эффективность и безопасность (Макс Сальников / Microsoft, Владимир Иванов / Supplied, Михаил Левченко / Яндекс Вертикали, Павел Герасимов / Wrike).
💻 Мастер-класс «Project-aware ассистенты: RAG + MCP» — живая документация, контекст кода для LLM и интерфейс запросов в мессенджере; как это ускоряет онбординг и разработку (Григорий Сухоруков, Яндекс).
⚡️«Эффективный промптинг» — техники, которые убирают типовые страхи и реально ускоряют разработку (Евгений Сатуров, Surf).
Почему это важно: AI уже часть рабочего стека — от IDE до CI/CD. Здесь — практики с измеримым эффектом: меньше рутины, быстрее процессы.
Кому будет полезно: разработчикам, архитекторам и техлидам, платформенным/DevOps-инженерам - всем, кто внедряет AI-процессы и ждёт измеримого результата.
🗓 29 сентября - 3 октября
🔗 Подробности и регистрация: https://podlodka.io/aicrew (https://podlodka.io/aicrew?utm_campaign=early_bird_ai_crew_1&utm_source=telegram&utm_medium=paid&utm_content=laravel_it&erid=2SDnjcnF3ka)
@php_be1
Если вы ищете практические знания без воды — это оно. Подлодка собрала экспертов, которые покажут, что реально работает в коде, пайплайнах и командных процессах.
В программе:
📊«AI, ML, DS, нейросети: без хайпа в терминах» — разберём границы применимости подходов, чтобы отличать пользу от шума (Алексей Шаграев, ex-Google, ex-Yandex).
👥 Круглый стол «AI-культура в команде» — инструменты и практики, сопротивление/принятие, влияние на эффективность и безопасность (Макс Сальников / Microsoft, Владимир Иванов / Supplied, Михаил Левченко / Яндекс Вертикали, Павел Герасимов / Wrike).
💻 Мастер-класс «Project-aware ассистенты: RAG + MCP» — живая документация, контекст кода для LLM и интерфейс запросов в мессенджере; как это ускоряет онбординг и разработку (Григорий Сухоруков, Яндекс).
⚡️«Эффективный промптинг» — техники, которые убирают типовые страхи и реально ускоряют разработку (Евгений Сатуров, Surf).
Почему это важно: AI уже часть рабочего стека — от IDE до CI/CD. Здесь — практики с измеримым эффектом: меньше рутины, быстрее процессы.
Кому будет полезно: разработчикам, архитекторам и техлидам, платформенным/DevOps-инженерам - всем, кто внедряет AI-процессы и ждёт измеримого результата.
🗓 29 сентября - 3 октября
🔗 Подробности и регистрация: https://podlodka.io/aicrew (https://podlodka.io/aicrew?utm_campaign=early_bird_ai_crew_1&utm_source=telegram&utm_medium=paid&utm_content=laravel_it&erid=2SDnjcnF3ka)
@php_be1
Денди-код
Краткая и практичная книга о том, как писать понятный и аккуратный код с примерами на PHP. Книга не уходит в теоретические дебри, не спорит о вкусе и не переоценивает значение философии чистоты. Она фокусируется на самом первом шаге к хорошему коду — его визуальной читаемости. Здесь вы найдёте рекомендации, которые можно и нужно применять сразу на практике.
Бесплатно: https://github.com/tabuna/dandy-code
@php_be1
Краткая и практичная книга о том, как писать понятный и аккуратный код с примерами на PHP. Книга не уходит в теоретические дебри, не спорит о вкусе и не переоценивает значение философии чистоты. Она фокусируется на самом первом шаге к хорошему коду — его визуальной читаемости. Здесь вы найдёте рекомендации, которые можно и нужно применять сразу на практике.
Бесплатно: https://github.com/tabuna/dandy-code
@php_be1
Первая информацию о PHP 9.0
@php_be1
https://nabilhassen.com/php-90-release-date-and-features-you-must-know
@php_be1
https://nabilhassen.com/php-90-release-date-and-features-you-must-know
Nabilhassen
PHP 9.0: Release Date and Features You Must Know
Discover PHP 9.0 features and release date. Learn about new performance improvements, strict typing, and breaking changes developers must prepare for.
Тестировщики не у дел, штат сокращается, а пробиться через сотню откликов нереально – что делать?
Леся Набока и Карьерный Цех (https://careerfactory.ru/career-support?utm_source=telegram&utm_medium=laravel_it&utm_campaign=native_support_07102025&erid=2W5zFGAmXTN) уже много лет держат руку на пульсе и помогают тестироващикам сохранять свои позиции на рынке. За КЦшниками выстраивается очередь, а все потому, что они умеют в самопрезентацию и точно знают, что главный продукт в их жизни — это собственная карьера.
Кроме этого, их выпускники:
— жестко качают нетворк и обзаводятся нужными подвязами;
— умеют в переговоры (знают, что это не они продают себя, а компания предлагает им свою вакансию)
— получают пожизненный навык трудоустройства (а значит никакой шторм на рынке им больше не страшен).
Их выпускники повсюду, они работают во всех топовых компаниях нашей страны.
Хотите перестать паниковать перед сотнями откликов? Приходите на бесплатную консультацию (https://careerfactory.ru/career-support?utm_source=telegram&utm_medium=laravel_it&utm_campaign=native_support_07102025&erid=2W5zFGAmXTN) и узнавайте подробнее о программе.
@php_be1
Леся Набока и Карьерный Цех (https://careerfactory.ru/career-support?utm_source=telegram&utm_medium=laravel_it&utm_campaign=native_support_07102025&erid=2W5zFGAmXTN) уже много лет держат руку на пульсе и помогают тестироващикам сохранять свои позиции на рынке. За КЦшниками выстраивается очередь, а все потому, что они умеют в самопрезентацию и точно знают, что главный продукт в их жизни — это собственная карьера.
Кроме этого, их выпускники:
— жестко качают нетворк и обзаводятся нужными подвязами;
— умеют в переговоры (знают, что это не они продают себя, а компания предлагает им свою вакансию)
— получают пожизненный навык трудоустройства (а значит никакой шторм на рынке им больше не страшен).
Их выпускники повсюду, они работают во всех топовых компаниях нашей страны.
Хотите перестать паниковать перед сотнями откликов? Приходите на бесплатную консультацию (https://careerfactory.ru/career-support?utm_source=telegram&utm_medium=laravel_it&utm_campaign=native_support_07102025&erid=2W5zFGAmXTN) и узнавайте подробнее о программе.
@php_be1
Сегодня хочу поговорить о теме, которая часто мешает PHP-разработчикам писать красивый и устойчивый код - магические методы.
Да, те самые __get, __set, __call, __toString и компания. Они вроде бы удобные: можно ловко обращаться к несуществующим свойствам, вызывать методы, которых нет, и всё работает. Но вот вопрос — а как это тестировать и поддерживать?
Когда код полагается на магию, отладка превращается в игру «угадай, откуда взялось это значение». IDE не подсказывает типы, автодополнение не работает, а дебаггер видит лишь хаос. Я не говорю, что магические методы нужно запретить. Они бывают полезны, например, в паттерне Proxy или для ленивой загрузки. Но использовать их стоит осознанно, с понятным контрактом.
👉 Советы от меня:
- Если хочешь гибкости — лучше внедри __call через интерфейс или трейт с чёткой логикой.
- Если используешь __get / __set — документируй все «виртуальные» свойства в phpdoc.
- И главное - не прячь логику под магию. Пусть код говорит сам за себя.
👉 [|@php_be1]
Да, те самые __get, __set, __call, __toString и компания. Они вроде бы удобные: можно ловко обращаться к несуществующим свойствам, вызывать методы, которых нет, и всё работает. Но вот вопрос — а как это тестировать и поддерживать?
Когда код полагается на магию, отладка превращается в игру «угадай, откуда взялось это значение». IDE не подсказывает типы, автодополнение не работает, а дебаггер видит лишь хаос. Я не говорю, что магические методы нужно запретить. Они бывают полезны, например, в паттерне Proxy или для ленивой загрузки. Но использовать их стоит осознанно, с понятным контрактом.
👉 Советы от меня:
- Если хочешь гибкости — лучше внедри __call через интерфейс или трейт с чёткой логикой.
- Если используешь __get / __set — документируй все «виртуальные» свойства в phpdoc.
- И главное - не прячь логику под магию. Пусть код говорит сам за себя.
👉 [|@php_be1]
Сегодня хочу показать вам, как магические методы в 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]