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]
Использование файберов в 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.