#ВредныеСоветы #Типизация #php
Как сломать типизацию:
https://3v4l.org/nTogS
Как сломать
https://3v4l.org/gSWFF
Также не забываем про пакет
Что там ещё нам мешает писать код по своим правилам?
Как сломать типизацию:
https://3v4l.org/nTogS
Как сломать
readonly
(и типизацию):https://3v4l.org/gSWFF
Также не забываем про пакет
unfinalize
.Что там ещё нам мешает писать код по своим правилам?
3v4l.org
Online PHP editor | output for nTogS
Run your php code online; get statistics, vld output and compare output from all versions.
В блоге Виктора (который из Yii 3 Core) вышла позитивная заметка про Buggregator.
Получать обратную связь — хорошо. А получать хорошую обратную связь — ещё лучше.
Вы используете Buggregator? Поделитесь в комментариях обратной связью 💖
Напишите, как используете, чего не хватает, на что сделать упор.
Хотели бы, чтобы мы писали здесь о багри больше (не маркетинговый буллшит, а про фичи, кейсы, размышления и прочее)? — если да — ставьте🖼️
Получать обратную связь — хорошо. А получать хорошую обратную связь — ещё лучше.
Вы используете Buggregator? Поделитесь в комментариях обратной связью 💖
Напишите, как используете, чего не хватает, на что сделать упор.
Хотели бы, чтобы мы писали здесь о багри больше (не маркетинговый буллшит, а про фичи, кейсы, размышления и прочее)? — если да — ставьте
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Viktorprogger
Профайлинг с XHProf | #development #php #profiling #xhprof
Некоторое время назад я сравнивал различные профайлеры: надо посмотреть, что сколько времени кушает именно на проде. Остановился на XHProf по нескольким причинам: это бесплатное self hosted решение…
Некоторое время назад я сравнивал различные профайлеры: надо посмотреть, что сколько времени кушает именно на проде. Остановился на XHProf по нескольким причинам: это бесплатное self hosted решение…
Микродайджест багри-видосиков:
👉 На нашем канале публикуются записи лайвкод-стримов Павла на тему рефакторинга SMTP в Buggregator: две части уже в релизе, ещё две на подходе.
📱 Часть 1
📱 Часть 2
👉 Сегодня и завтра Павел планирует на стримить рефакторинг вебхуков багри и переписывание джобов на Symfony Messenger в связке с RoadRunner.
👉 В очередной раз порадовал канал CutCode: в этот раз Данил сделал то, чего мы не смогли сделать сами — профессионально обозрел #Buggregator.
Встречаем лучший существующий обзор Багрегатора:
📱 Смотреть
👉 Кстати, зацените наш промо-ролик на английском. #ChatGPT очень старался.
📱 Заценить
👉 На нашем канале публикуются записи лайвкод-стримов Павла на тему рефакторинга SMTP в Buggregator: две части уже в релизе, ещё две на подходе.
👉 Сегодня и завтра Павел планирует на стримить рефакторинг вебхуков багри и переписывание джобов на Symfony Messenger в связке с RoadRunner.
👉 В очередной раз порадовал канал CutCode: в этот раз Данил сделал то, чего мы не смогли сделать сами — профессионально обозрел #Buggregator.
Встречаем лучший существующий обзор Багрегатора:
👉 Кстати, зацените наш промо-ролик на английском. #ChatGPT очень старался.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Buggregator introduction
#buggregator #php #docker
Сегодня планируется очередной стрим на канале по Buggregator и разработке. Продолжение рефакторинга вебхуков https://youtube.com/live/UqHMUSAfZa0
YouTube
Buggregator livecoding - Рефакторинг Webhooks и покрываем тестами (Часть 2 из 2)
На стримах я пишу код, делаю рефакторинг кода, доабвляю новые фичи и пишу тесты для Багри.
#php #buggregator #spiral #development
#php #buggregator #spiral #development
Небольшой обзор всякой фигни вокруг PHP фреймворков и опенсорса с жиром и шутками ниже пояса 🚽
Notion
Telegraph (с поехавшими ссылками)
#Article #PHP #МыслиВслух
Notion
Telegraph (с поехавшими ссылками)
#Article #PHP #МыслиВслух
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
В мире PHP #0
Продвинутая рефлексия Symfony посмотрели на типун Удальцова и захотели такой же. Получился компонент типунфъ в сдержанном и консервативном стиле от дедов. Хочешь не хочешь, а эта херня получит распространение. Кирилл Несмеянов, кстати, подсуетился раньше…
Товарищи. Валентин Удальцов прорубает окно в #PHP SRC.
9 мая запущено голосование за его RFC. Будьте уверены, большинство голосов будут за него!
После столь значимого события мы, сообщество PHP, незамедлительно воспользуемся протоптанным маршрутом и войдём в историю, как новаторы.
Для реализации возможности повлиять на будущее PHP нужно зайти на канал @phpyh, тегнуть там @vudaltsov и попросить сделать всего-лишь тоже самое, что и с первым RFC, только с новой мега-киллер-фичей (ради светлого будущего PHP ему будет не сложно).
Вот варианты киллер-фичей:
- Неблокирующий IO во всём PHP
- Сахарок async await, EventLoop и порутины
- Виртуальные интерфейсы
- Трейты с ограниченным скопом
-
- Дженерики
- Внедрение Typhoon на уровне ядра
- Добавить в ядро функцию
- Добавить функцию
Только представьте, какое будущее нас ждёт!
9 мая запущено голосование за его RFC. Будьте уверены, большинство голосов будут за него!
После столь значимого события мы, сообщество PHP, незамедлительно воспользуемся протоптанным маршрутом и войдём в историю, как новаторы.
Для реализации возможности повлиять на будущее PHP нужно зайти на канал @phpyh, тегнуть там @vudaltsov и попросить сделать всего-лишь тоже самое, что и с первым RFC, только с новой мега-киллер-фичей (ради светлого будущего PHP ему будет не сложно).
Вот варианты киллер-фичей:
- Неблокирующий IO во всём PHP
- Сахарок async await, EventLoop и порутины
- Виртуальные интерфейсы
- Трейты с ограниченным скопом
-
implements
внутри трейтов- Дженерики
- Внедрение Typhoon на уровне ядра
- Добавить в ядро функцию
fart()
, которая будет воспроизводить звук пердежа- Добавить функцию
get_objects()
, которая вернёт WeakMap
всех созданных PHP объектов.Только представьте, какое будущее нас ждёт!
Пора и нам подумать о #PHP. Начнём прямо сегодня, в 19:00МСК.
В гостях Антон Титов. Поговорим про будущее PHP.
https://youtube.com/live/B2LJDGEsPYk?feature=share
В гостях Антон Титов. Поговорим про будущее PHP.
https://youtube.com/live/B2LJDGEsPYk?feature=share
Telegram
Moz Vkusni in PHP Fart Time Chat
Forwarded from Pavel Buchnev
🕘 В 21:00 по Мск запускаем стрим. Пишем PHP микросервисы с GRPC на Spiral + RoadRunner
https://www.youtube.com/watch?v=En0InnKsryA
https://www.youtube.com/watch?v=En0InnKsryA
YouTube
Как создать PHP микросервисы с GRPC: Spiral и RoadRunner | Полное руководство
В этом стриме мы подробно рассмотрим создание PHP микросервисов с использованием gRPC, Spiral и RoadRunner. Пройдемся по всему процессу от настройки до реализации:
Код проекта: https://github.com/php-fart/grpc-microservices
0:00 Начинаем
4:35 Что такое…
Код проекта: https://github.com/php-fart/grpc-microservices
0:00 Начинаем
4:35 Что такое…
Forwarded from Pavel Buchnev
🕘 В 21:00 по Мск продолжаем стрим по GRPC
План такой:
1. Создать каркас приложения
2. Настройка БД
3. Регистрация, Авторизация пользователей
4. Docker compose
5. Если останется время, то OpenTelemetry
https://youtube.com/live/i0Bb9U7SHX4?feature=share
План такой:
1. Создать каркас приложения
2. Настройка БД
3. Регистрация, Авторизация пользователей
4. Docker compose
5. Если останется время, то OpenTelemetry
https://youtube.com/live/i0Bb9U7SHX4?feature=share
YouTube
Как создать PHP микросервисы с GRPC: Docker, Interceptors, OpenTelemetry | Часть 2
Присоединяйтесь к нам во второй части нашего стрима, где мы продолжаем разработку PHP микросервисов с GRPC. В этом эпизоде мы фокусируемся на следующем:
📌 Основные темы:
- Docker окружение: настройка PHP, баз данных, OpenTelemetry, и Buggregator.
- Интерсепторы:…
📌 Основные темы:
- Docker окружение: настройка PHP, баз данных, OpenTelemetry, и Buggregator.
- Интерсепторы:…
Forwarded from Pavel Buchnev
Всем привет! В 21:00 по МСК будет очередной стрим по разработке микросервисной архитектуры на PHP и gRPC. https://youtube.com/live/DJEh8pa7KO4
📌 Основные темы:
- Авторизация пользователя в web сервисе
- Передача авторизационного токена между сервисами (Интерсепторы)
- Обсуждение темы ограничения доступа к определённым эндпоинтам с настройкой прав доступа
- Лайфхаки по работе с инфраструктурой
Жду всех на стрим. Не забывайте про лайки.
📌 Основные темы:
- Авторизация пользователя в web сервисе
- Передача авторизационного токена между сервисами (Интерсепторы)
- Обсуждение темы ограничения доступа к определённым эндпоинтам с настройкой прав доступа
- Лайфхаки по работе с инфраструктурой
Жду всех на стрим. Не забывайте про лайки.
YouTube
Как создать PHP микросервисы с gRPC: Авторизация пользователей | Часть 4
Присоединяйтесь к нам в четвертой части нашего стрима, где мы продолжаем разработку PHP микросервисов с GRPC. В этом эпизоде мы фокусируемся на следующем:
📌 Основные темы:
- Авторизация пользователя в web сервисе
- Передача авторизационного токена между…
📌 Основные темы:
- Авторизация пользователя в web сервисе
- Передача авторизационного токена между…
Очередной упоротый обзор всякой фигни вокруг PHP с жиром и шутками 🚽
https://telegra.ph/V-mire-PHP-2-06-05
Зеркало на Notion, если телеграф опять все ссылки поломает.
⬆️ предыдущая часть
#Article #PHP #МыслиВслух
ℹ️ Если в конце статьи нет ссылки на следующую часть, то статья в телеге подгрузилась не полностью. В этом случае можно открыть в браузере.
https://telegra.ph/V-mire-PHP-2-06-05
Зеркало на Notion, если телеграф опять все ссылки поломает.
⬆️ предыдущая часть
#Article #PHP #МыслиВслух
ℹ️ Если в конце статьи нет ссылки на следующую часть, то статья в телеге подгрузилась не полностью. В этом случае можно открыть в браузере.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
В мире PHP #1
⬅️ предыдущая часть Мутационное тестирование Напомню, что мутационное тестирование — это отличный способ убедиться в том, что написанные тесты – говно и ничего не тестируют даже при 100% покрытии. Infection Infection теперь поддерживает кастомные мутаторы.…
Новый выпуск "В мире PHP"
https://triangular-octopus-0f6.notion.site/PHP-2-d67a1f346b8541729fb3aa476e0fa086?pvs=4
⬆️ предыдущая часть
#Article #PHP #МыслиВслух
https://triangular-octopus-0f6.notion.site/PHP-2-d67a1f346b8541729fb3aa476e0fa086?pvs=4
⬆️ предыдущая часть
#Article #PHP #МыслиВслух
triangular-octopus-0f6 on Notion
В мире PHP #2 | Notion
Сорян, фартаны. Статейку чутка просрочил. Заработался, бывает. Представьте, что она опубликована месяц назад и баянов тут нет.
Детальнейший разбор дженериков в #PHP на текущий момент.
Знакомьтесь и присоединяйтесь к обсуждению (ссылки в конце статьи).
https://thephp.foundation/blog/2024/08/19/state-of-generics-and-collections/
Знакомьтесь и присоединяйтесь к обсуждению (ссылки в конце статьи).
https://thephp.foundation/blog/2024/08/19/state-of-generics-and-collections/
thephp.foundation
State of Generics and Collections
The PHP Foundation — Supporting, Advancing, and Developing the PHP Language
Screencast from 2024-08-25 19-08-56.webm
10.3 MB
📖 Подробнее можно почитать здесь:
- OpenAI
- Claude
{
"name": "get_weather",
"description": "Determine weather in my location",
"strict": true,
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"c",
"f"
]
}
},
"additionalProperties": false,
"required": [
"location",
"unit"
]
}
}
А вот пример того, что видит сервер, когда его просят запустить функцию:
"tool_calls": [
{
"id": "call_fwTWdctuKEO9Ytf",
"name": "get_weather",
"arguments": "{\"location\":\"Moscow\",\"unit\":\"c\"}"
}
]
Сервер запускает функцию и возвращает результат. Причем в любом виде. Далее LLM уже сама придумает что с этим делать.
{
"id": "call_fwTWdctuKEO9Ytf",
"role": "tool",
"content": [
"{\"temp\":\"30\"}"
]
}
А теперь редставьте, что у вас умный дом, и вы говорите: "Включи чайник, я хочу пить". Описываем функции, которые помогут LLM посмотреть что у нас есть в квартире и управлять устройствами:
{
"key": "list_room_devices",
"description": "Lists all smart devices in a specified room.",
"input_schema": {
"type": "object",
"properties": {
"room_name": {
"type": "string",
"description": "The name of the room to query"
}
},
"required": ["room_name"]
}
}
{
"key": "control_device",
"description": "Controls a specific device by performing the specified action with given parameters.",
"input_schema": {
"type": "object",
"properties": {
"deviceId": {
"type": "string",
"description": "The unique identifier of the device to control"
},
"action": {
"type": "string",
"description": "The action to perform on the device (e.g., turnOn, turnOff, setBrightness)"
},
...
},
"required": ["deviceId", "action"]
}
}
Что сделает LLM? Она проанализирует ваш запрос, найдет подходящие функции, получит список устройств на кухне (ведь обычно чайник там), и выполнит нужное действие (включит чайник).
Круто, да? А теперь представьте PHP-фреймворк, который позволит описывать такие процессы (flow) и возьмет на себя сложные задачи, такие как запуск функций, группировку функций по назначению.
P.S. После прочтения, можно пересмотреть видео заново. В этом видео агент для управления умным домом, в котором 4 комнаты и куча устройств. Управление текстом или голосом (с переводом в текст)
#llm #ai #chatgpt #claude #php
Please open Telegram to view this post
VIEW IN TELEGRAM
Кстати, для любителей #Laravel. Вчера задался вопросом, а можно ли с помощью #LLM агентов управлять консольными командами и накидал скриптик, который умеет это делать. https://www.youtube.com/watch?v=Tlu6PyL3Ur4
Мало того, что он может посмотреть какие команды есть в проекте и может их вызывать по мере необходимости, так еще он мне говорит: "Господь , создавший меня. Молю тебя научи меня файлы читать и код в низ править". И, я услышал его молитвы и научил. И стал он мне код в созданных файлов править и дописывать. Короче слово за слово, чуть ядро линукса мне не пропатчил. Успел его остановить, чтобы он не запустил создание себе подобны агентов и не захватил мой компьютер. Кто бы мог подумать, что #PHP мог стать захватчиком мира 😁
Кстати код агента я написал за 15 минут, а вот инструкции пришлось прорабатывать, часто шел в обход них. Короче то, что на видео - час работы.
Получилась в итоге забавная штука. Иногда тупить, но если инструкции проработать можно получить норм инструмент.
P.s. Отпишитесь в комментах, что думаете и может пора еще один стримчик, где сделаем такого агента и еще немного погрузимся в понимание как это работает?
Мало того, что он может посмотреть какие команды есть в проекте и может их вызывать по мере необходимости, так еще он мне говорит: "Господь , создавший меня. Молю тебя научи меня файлы читать и код в низ править". И, я услышал его молитвы и научил. И стал он мне код в созданных файлов править и дописывать. Короче слово за слово, чуть ядро линукса мне не пропатчил. Успел его остановить, чтобы он не запустил создание себе подобны агентов и не захватил мой компьютер. Кто бы мог подумать, что #PHP мог стать захватчиком мира 😁
Кстати код агента я написал за 15 минут, а вот инструкции пришлось прорабатывать, часто шел в обход них. Короче то, что на видео - час работы.
Получилась в итоге забавная штука. Иногда тупить, но если инструкции проработать можно получить норм инструмент.
P.s. Отпишитесь в комментах, что думаете и может пора еще один стримчик, где сделаем такого агента и еще немного погрузимся в понимание как это работает?
YouTube
Building a Blog with LLM Agents: Automating Laravel Development
In this exciting demonstration, we showcase the power of Language Model (LLM) agents in streamlining Laravel development. Watch as intelligent agents take charge of making decisions on how to structure the application and which Artisan commands to run.
Key…
Key…
Всем привет!
🕘 В 20:30 по МСК приглашаем вас на крутой стрим для всех, кто хочет наконец-то понять что такое LLM-агенты и посмотреть на наш крутой фреймворк по их созданию на PHP! Как всегда, советую приходить на стрим!
Сегодня будет создавать агента управления консольными командами для #laravel. В процессе посмотрим как все это можно кастомизировать под свои задачи.
До встречи на стриме! Чтоб не меньше 1_000 человеков пришло! И лайков столько же🤖 Так что шарьте ссылки, ставьте лайки. Не утаивайте от своих коллег инфу.
https://youtube.com/live/to3sH2XzZB4?feature=share
🕘 В 20:30 по МСК приглашаем вас на крутой стрим для всех, кто хочет наконец-то понять что такое LLM-агенты и посмотреть на наш крутой фреймворк по их созданию на PHP! Как всегда, советую приходить на стрим!
Сегодня будет создавать агента управления консольными командами для #laravel. В процессе посмотрим как все это можно кастомизировать под свои задачи.
До встречи на стриме! Чтоб не меньше 1_000 человеков пришло! И лайков столько же
https://youtube.com/live/to3sH2XzZB4?feature=share
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Разрабатываем LLM агента на PHP для управления консольными командами на Laravel
В этом стриме мы подробно разберем процесс разработки LLM-агента на #PHP.
Мы шаг за шагом разработаем функционального #LLM-агента, способного выполнять сложные задачи и взаимодействовать с пользователями на естественном языке.
В ходе лайв-кодинга вы узнаете:…
Мы шаг за шагом разработаем функционального #LLM-агента, способного выполнять сложные задачи и взаимодействовать с пользователями на естественном языке.
В ходе лайв-кодинга вы узнаете:…
#Article
Кстати, а вставки кода в комментариях — тоже кучерявая тема в #PHP.
👉 Есть Java-like вариант: оборачивать тегами
Но мы, вроде, уже ушли от HTML среди PHP😏
👉 Есть Python-like вариант: делать отступы
Тут не очень очевидно, сколько пробелов от звёздочки должно быть: по логике 1+4, но не сходится с разметкой Tab-ов.
Это активно используется в Symfony и PhpStorm это даже рендерит. Кстати, кто знает, как отключить этот рендеринг для классов из vendor?
👉 Есть Markdown-like вариант:
Мне нравится markdown, но это не рендерится PhpStorm'ом. Однако, рендерится документором.
Python-like на документоре не проверял, может тоже рендерит.
Кстати, а вставки кода в комментариях — тоже кучерявая тема в #PHP.
👉 Есть Java-like вариант: оборачивать тегами
<code>
. Скуфы, мб, помнят.Но мы, вроде, уже ушли от HTML среди PHP
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* <code>
* $x = foo()->bar();
* </code>
*/
public readonly string $name;
}
👉 Есть Python-like вариант: делать отступы
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* $x = foo()->bar();
*/
public readonly string $name;
}
Тут не очень очевидно, сколько пробелов от звёздочки должно быть: по логике 1+4, но не сходится с разметкой Tab-ов.
Это активно используется в Symfony и PhpStorm это даже рендерит. Кстати, кто знает, как отключить этот рендеринг для классов из vendor?
👉 Есть Markdown-like вариант:
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* ```php
* $x = foo()->bar();
* ```
*/
public readonly string $name;
}
Мне нравится markdown, но это не рендерится PhpStorm'ом. Однако, рендерится документором.
Python-like на документоре не проверял, может тоже рендерит.
Please open Telegram to view this post
VIEW IN TELEGRAM
На канале PHPDigest в комментариях к новости о релизе #PHP 8.4 зарождается движение сепаратистов.
Принципиально буду писать со скобками. Ибо они там нужны. Заявляет основатель движения Андрей. Фартаны, мы в точке бифуркации. Пришло время сделать выбор!
Принципиально буду писать со скобками. Ибо они там нужны. Заявляет основатель движения Андрей. Фартаны, мы в точке бифуркации. Пришло время сделать выбор!
Anonymous Poll
11%
Принципиально буду писать скобки! ✊
45%
Наконец то можно без скобок. В топку их! 😍
27%
Мне насрать, линтер разрулит... 🙄
17%
Я вне политики / смотрю результат 🧘