Первая информация о Laravel 13
@php_be1
https://nabilhassen.com/laravel-13-new-features-release-date-install-now
@php_be1
https://nabilhassen.com/laravel-13-new-features-release-date-install-now
Nabilhassen
Laravel 13: New Features, Release Date, Install Now
An early look at Laravel 13 with its release date, new features, and how to install it now. This post will be updated monthly until the official launch.
Сегодня хочу поделиться одной небольшой, но очень полезной привычкой, которая здорово экономит время в работе с PHP-проектами.
Когда я только начинал, я постоянно забывал про php artisan tinker (если речь про Laravel) или встроенный интерактивный шелл php -a. А ведь это супер-удобный способ быстро проверить кусок кода, протестировать работу функции или глянуть, что вернет тот или иной запрос.
Например, нужно быстро понять, как работает кастомный accessor в модели? Вместо того чтобы городить временные роуты или var_dump-ить в контроллере - открываешь tinker:
php artisan tinker
И сразу работаешь с моделью:
$user = App\Models\User::find(1);
$user->profile->full_name;
Буквально за пару секунд получаешь ответ, без лишнего мусора в коде.
Еще круто использовать tinker для тестирования сервисов или вызова хелперов. Иногда я даже проверяю SQL-запросы через Eloquent, чтобы потом использовать их в сидерах или тестах.
Короче, мой совет: если еще не используете — приучите себя чаще заходить в tinker. Это ваш "быстрый песочница", которая всегда под рукой.
А вы как чаще отлаживаете код в Laravel - через tinker, dd() или дебаггер в IDE? Напишите в комментах, будет интересно сравнить!
👉 [|@php_be1]
Когда я только начинал, я постоянно забывал про php artisan tinker (если речь про Laravel) или встроенный интерактивный шелл php -a. А ведь это супер-удобный способ быстро проверить кусок кода, протестировать работу функции или глянуть, что вернет тот или иной запрос.
Например, нужно быстро понять, как работает кастомный accessor в модели? Вместо того чтобы городить временные роуты или var_dump-ить в контроллере - открываешь tinker:
php artisan tinker
И сразу работаешь с моделью:
$user = App\Models\User::find(1);
$user->profile->full_name;
Буквально за пару секунд получаешь ответ, без лишнего мусора в коде.
Еще круто использовать tinker для тестирования сервисов или вызова хелперов. Иногда я даже проверяю SQL-запросы через Eloquent, чтобы потом использовать их в сидерах или тестах.
Короче, мой совет: если еще не используете — приучите себя чаще заходить в tinker. Это ваш "быстрый песочница", которая всегда под рукой.
А вы как чаще отлаживаете код в Laravel - через tinker, dd() или дебаггер в IDE? Напишите в комментах, будет интересно сравнить!
👉 [|@php_be1]
🔥 Проверьте свои знания PHP! 🚀
✅ Думаете, ваши знания PHP на уровне Middle+ или Senior? Пройдите наш квиз и узнайте, готовы ли вы освоить один из самых мощных PHP-фреймворков — Symfony!
Этот курс позволит вам развить навыки для разработки сложных и высокопроизводительных приложений. Вы научитесь обеспечивать безопасность приложений, проводить оптимизацию и эффективно использовать современные инструменты фреймворка, такие как Symfony, Git, Docker и многие другие.
На курсе вас ждут:
- Живые лекции с практикующими преподавателями
- Глубокое погружение в архитектуру Symfony
После курса вы сможете решать задачи уровня enterprise и работать с самыми популярными фреймворками.
👉 Пройдите тест, получите доступ к полезным урокам и скидку на курс «Symfony Framework»:
https://clck.ru/3NrJDn
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
✅ Думаете, ваши знания PHP на уровне Middle+ или Senior? Пройдите наш квиз и узнайте, готовы ли вы освоить один из самых мощных PHP-фреймворков — Symfony!
Этот курс позволит вам развить навыки для разработки сложных и высокопроизводительных приложений. Вы научитесь обеспечивать безопасность приложений, проводить оптимизацию и эффективно использовать современные инструменты фреймворка, такие как Symfony, Git, Docker и многие другие.
На курсе вас ждут:
- Живые лекции с практикующими преподавателями
- Глубокое погружение в архитектуру Symfony
После курса вы сможете решать задачи уровня enterprise и работать с самыми популярными фреймворками.
👉 Пройдите тест, получите доступ к полезным урокам и скидку на курс «Symfony Framework»:
https://clck.ru/3NrJDn
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Gemini API PHP Client
Клиент Google Gemini API для PHP позволяет вам использовать модель искусственного интеллекта Gemini.
Установка
composer require gemini-api-php/client
Базовая генерация текста
use GeminiAPI\Client;
use GeminiAPI\Resources\Parts\TextPart;
$client = new Client('GEMINI_API_KEY');
$response = $client->geminiPro()->generateContent(
new TextPart('PHP in less than 100 chars'),
);
print $response->text();
// PHP: A server-side scripting language used to create dynamic web applications.
// Easy to learn, widely used, and open-source.
https://github.com/gemini-api-php/client
👉 [|@php_be1]
Клиент Google Gemini API для PHP позволяет вам использовать модель искусственного интеллекта Gemini.
Установка
composer require gemini-api-php/client
Базовая генерация текста
use GeminiAPI\Client;
use GeminiAPI\Resources\Parts\TextPart;
$client = new Client('GEMINI_API_KEY');
$response = $client->geminiPro()->generateContent(
new TextPart('PHP in less than 100 chars'),
);
print $response->text();
// PHP: A server-side scripting language used to create dynamic web applications.
// Easy to learn, widely used, and open-source.
https://github.com/gemini-api-php/client
👉 [|@php_be1]
Каким мог бы быть Laravel WebServer, если бы он работал через очередь?
Привет! Сегодня я хочу поделиться с вами одной интересной идеей — а что если Laravel WebServer принимал бы все HTTP-запросы не напрямую, а через обычную очередь задач Laravel Queue? Вместо привычных PHP-FPM, Swoole, RoadRunner или FrankenPHP — весь запрос обрабатывался бы как задача в очереди.
Звучит странно? Давайте разбираться, как это могло бы работать и что из этого получилось бы.
https://laravel.su/p/kakim-mog-by-byt-laravel-webserver-esli-by-on-rabotal-cerez-ocered
👉 [|@php_be1]
Привет! Сегодня я хочу поделиться с вами одной интересной идеей — а что если Laravel WebServer принимал бы все HTTP-запросы не напрямую, а через обычную очередь задач Laravel Queue? Вместо привычных PHP-FPM, Swoole, RoadRunner или FrankenPHP — весь запрос обрабатывался бы как задача в очереди.
Звучит странно? Давайте разбираться, как это могло бы работать и что из этого получилось бы.
https://laravel.su/p/kakim-mog-by-byt-laravel-webserver-esli-by-on-rabotal-cerez-ocered
👉 [|@php_be1]
Pulse Boson PHP #1
Boson PHP — это платформа для создания кроссплатформенных настольных приложений, которая позволяет использовать веб-технологии (PHP, JavaScript, HTML, CSS) для создания native-приложений. Она сочетает в себе интерпретатор PHP и движок WebView, что позволяет собирать приложения в единый исполняемый файл для Windows, Linux и macOS.
https://habr.com/ru/articles/944716/
@php_be1
Boson PHP — это платформа для создания кроссплатформенных настольных приложений, которая позволяет использовать веб-технологии (PHP, JavaScript, HTML, CSS) для создания native-приложений. Она сочетает в себе интерпретатор PHP и движок WebView, что позволяет собирать приложения в единый исполняемый файл для Windows, Linux и macOS.
https://habr.com/ru/articles/944716/
@php_be1
💡 Совет по Laravel
Нужно проверить, что в вашем вводе существуют определённые ключи массива?
Используйте required_array_keys, чтобы убедиться, что в данных массива присутствуют конкретные ключи - идеально подходит для API-эндпоинтов, которые ожидают строгую структуру данных.
Ссылка на документацию: https://laravel.com/docs/12.x/validation#rule-required-array-keys
👉 [|@php_be1]
Нужно проверить, что в вашем вводе существуют определённые ключи массива?
Используйте required_array_keys, чтобы убедиться, что в данных массива присутствуют конкретные ключи - идеально подходит для API-эндпоинтов, которые ожидают строгую структуру данных.
Ссылка на документацию: https://laravel.com/docs/12.x/validation#rule-required-array-keys
👉 [|@php_be1]
Сегодня хочу поговорить про одну проблему, с которой я сталкивался сам и вижу её у других PHP-разработчиков - “магия” в коде.
Что я имею в виду? Это когда ты открываешь проект, а там сервисы создаются «сами собой», данные в объект попадают неизвестно откуда, а половина зависимостей подтягивается где-то «под капотом».
Вроде удобно - меньше кода писать. Но вот через пару месяцев ты сам же сидишь и думаешь: «А откуда вообще берётся этот объект? И почему тут такая зависимость?»
🔹 Основная проблема магии - она убивает явность кода. Чем больше скрытых механизмов, тем сложнее поддерживать проект и подключать новых разработчиков.
Примеры из практики:
- Использование глобальных хелперов вместо DI.
- Автоматический вызов методов через __call или __get.
- Массовая магия в Laravel (facades, hidden bindings и т.д.).
🛠 Что можно сделать:
1. Минимизировать скрытые механизмы - лучше написать чуть больше явного кода.
2. Использовать контейнер зависимостей, но регистрировать их явно.
3. Документировать «точки входа» и договориться в команде, где магия допустима, а где нет.
Когда код становится предсказуемым, ты меньше тратишь времени на дебаг, быстрее понимаешь чужие изменения и увереннее двигаешься вперёд.
А как у вас в проектах? Вы за явный код или любите, когда всё работает «само»?
👉 [|@php_be1]
Что я имею в виду? Это когда ты открываешь проект, а там сервисы создаются «сами собой», данные в объект попадают неизвестно откуда, а половина зависимостей подтягивается где-то «под капотом».
Вроде удобно - меньше кода писать. Но вот через пару месяцев ты сам же сидишь и думаешь: «А откуда вообще берётся этот объект? И почему тут такая зависимость?»
🔹 Основная проблема магии - она убивает явность кода. Чем больше скрытых механизмов, тем сложнее поддерживать проект и подключать новых разработчиков.
Примеры из практики:
- Использование глобальных хелперов вместо DI.
- Автоматический вызов методов через __call или __get.
- Массовая магия в Laravel (facades, hidden bindings и т.д.).
🛠 Что можно сделать:
1. Минимизировать скрытые механизмы - лучше написать чуть больше явного кода.
2. Использовать контейнер зависимостей, но регистрировать их явно.
3. Документировать «точки входа» и договориться в команде, где магия допустима, а где нет.
Когда код становится предсказуемым, ты меньше тратишь времени на дебаг, быстрее понимаешь чужие изменения и увереннее двигаешься вперёд.
А как у вас в проектах? Вы за явный код или любите, когда всё работает «само»?
👉 [|@php_be1]
🚀 Подборка ВК сообществ для программистов
📌Программирование
Программирование ITmozg https://vk.com/itmozg
Программирование Bookflow https://vk.com/bookflow
Обычный программист https://vk.com/oproger
Frontend разработчик https://vk.com/frontend_dev
Библиотека PHP программиста https://vk.com/php_be1
React https://vk.com/react_lib
Библиотека Java разработчика https://vk.com/bookjava
Библиотека C/C++ разработчика https://vk.com/cpp_lib
Kotlin https://vk.com/kotlin_lib
Библиотека Go (Golang) разработчика https://vk.com/golang_lib
📌Системное администрирование
Системный администратор https://vk.com/i_odmin
DevOps https://vk.com/i_devops
Библиотека девопса | DevOps, SRE, Sysadmin https://vk.com/devopslibru
Системный Администратор (Сисадмин) https://vk.com/sysodminof
Типичный Сисадмин https://vk.com/tipsysdmin
Книги для Системного Администратора https://vk.com/i_odmin_book
Системный Администратор Windows https://vk.com/windows_srv
Bash Советы https://vk.com/bash_srv
Devops Star (Звезда Девопса) https://vk.com/devops_star
Linux https://vk.com/linuxchmod
📌Python
Python академия https://vk.com/python_of
Библиотека Python разработчика https://vk.com/bookpython
📌1C
1C программист https://vk.com/odin1c_rus
DevLab1C https://vk.com/devlab1c
📌Сообщество Дизайнеров https://vk.com/odesigners
📌Физика Математика
ФизМат https://vk.com/phismat_1
Я Математик https://vk.com/po_matematike
📌Базы данных
Базы данных (Data Base) https://vk.com/database_info
📌Хакер
Хакер Free Взлом https://vk.com/xakkep_1
📌Юмор программистов
ITumor | программисты шутят https://vk.com/itumor
📌GitHub
GitHub Сообщество https://vk.com/githublib
📌Тестирование (QA)
Библиотека тестировщика QA https://vk.com/testlab_qa
📌GameDev
GameDev: разработка игр https://vk.com/game_devv
📌Работа для программистов, IT специалистов
https://vk.com/progjob
📌Программирование
Программирование ITmozg https://vk.com/itmozg
Программирование Bookflow https://vk.com/bookflow
Обычный программист https://vk.com/oproger
Frontend разработчик https://vk.com/frontend_dev
Библиотека PHP программиста https://vk.com/php_be1
React https://vk.com/react_lib
Библиотека Java разработчика https://vk.com/bookjava
Библиотека C/C++ разработчика https://vk.com/cpp_lib
Kotlin https://vk.com/kotlin_lib
Библиотека Go (Golang) разработчика https://vk.com/golang_lib
📌Системное администрирование
Системный администратор https://vk.com/i_odmin
DevOps https://vk.com/i_devops
Библиотека девопса | DevOps, SRE, Sysadmin https://vk.com/devopslibru
Системный Администратор (Сисадмин) https://vk.com/sysodminof
Типичный Сисадмин https://vk.com/tipsysdmin
Книги для Системного Администратора https://vk.com/i_odmin_book
Системный Администратор Windows https://vk.com/windows_srv
Bash Советы https://vk.com/bash_srv
Devops Star (Звезда Девопса) https://vk.com/devops_star
Linux https://vk.com/linuxchmod
📌Python
Python академия https://vk.com/python_of
Библиотека Python разработчика https://vk.com/bookpython
📌1C
1C программист https://vk.com/odin1c_rus
DevLab1C https://vk.com/devlab1c
📌Сообщество Дизайнеров https://vk.com/odesigners
📌Физика Математика
ФизМат https://vk.com/phismat_1
Я Математик https://vk.com/po_matematike
📌Базы данных
Базы данных (Data Base) https://vk.com/database_info
📌Хакер
Хакер Free Взлом https://vk.com/xakkep_1
📌Юмор программистов
ITumor | программисты шутят https://vk.com/itumor
📌GitHub
GitHub Сообщество https://vk.com/githublib
📌Тестирование (QA)
Библиотека тестировщика QA https://vk.com/testlab_qa
📌GameDev
GameDev: разработка игр https://vk.com/game_devv
📌Работа для программистов, IT специалистов
https://vk.com/progjob
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]