🧠 DSL vs паттерны: что выбрать в проекте
В разработке часто встаёт вопрос: использовать ли DSL (Domain Specific Language) или опираться на дизайн-паттерны. Оба подхода помогают структурировать работу с данными и бизнес-логикой, но дают разный результат.
🔍 В чём разница
Паттерны делают код более гибким и слабо связанным, позволяют легко подменять компоненты. Но вместе с этим усложняют ментальную модель — приходится держать в голове фабрики, адаптеры и репозитории, а сама бизнес-логика может «растворяться» в слоях абстракций.
DSL описывает действия напрямую. Язык ближе к предметной области и проще для восприятия, особенно когда задачи сложные или действия цепочкой. Он позволяет выразить логику в явном виде и сократить количество лишних запросов и пост-обработки.
⚠️ Ограничения DSL
🔸 Создание DSL требует серьёзной подготовки: язык должен быть достаточно гибким, чтобы покрывать текущие и будущие сценарии.
🔸 Поддержка DSL может быть трудозатратной, особенно если доменные действия часто меняются.
🔸 Строковые DSL работают как «фронтенд кода» — за ними скрывается движок, который тоже нужно развивать.
✅ Когда что выбрать
Если предметная область хорошо понятна и устойчива — стоит строить DSL.
Если действия ещё уточняются, а изменения происходят часто — лучше опираться на паттерны.
В сложных проектах возможен гибрид: паттерны для структуры и расширяемости, DSL для выражения бизнес-логики.
💬 А как у вас в проектах? Чаще используете паттерны или внедряете DSL?
👉 Читать статью
Библиотека пхпшника
#элементарный_выбор
В разработке часто встаёт вопрос: использовать ли DSL (Domain Specific Language) или опираться на дизайн-паттерны. Оба подхода помогают структурировать работу с данными и бизнес-логикой, но дают разный результат.
🔍 В чём разница
Паттерны делают код более гибким и слабо связанным, позволяют легко подменять компоненты. Но вместе с этим усложняют ментальную модель — приходится держать в голове фабрики, адаптеры и репозитории, а сама бизнес-логика может «растворяться» в слоях абстракций.
DSL описывает действия напрямую. Язык ближе к предметной области и проще для восприятия, особенно когда задачи сложные или действия цепочкой. Он позволяет выразить логику в явном виде и сократить количество лишних запросов и пост-обработки.
⚠️ Ограничения DSL
🔸 Создание DSL требует серьёзной подготовки: язык должен быть достаточно гибким, чтобы покрывать текущие и будущие сценарии.
🔸 Поддержка DSL может быть трудозатратной, особенно если доменные действия часто меняются.
🔸 Строковые DSL работают как «фронтенд кода» — за ними скрывается движок, который тоже нужно развивать.
✅ Когда что выбрать
Если предметная область хорошо понятна и устойчива — стоит строить DSL.
Если действия ещё уточняются, а изменения происходят часто — лучше опираться на паттерны.
В сложных проектах возможен гибрид: паттерны для структуры и расширяемости, DSL для выражения бизнес-логики.
💬 А как у вас в проектах? Чаще используете паттерны или внедряете DSL?
👉 Читать статью
Библиотека пхпшника
#элементарный_выбор
❤1
CPX
Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
🔗 Github
Библиотека пхпшника
#инструменты
Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
🔗 Github
Библиотека пхпшника
#инструменты
🤖 Курс «ИИ-агенты для DS-специалистов»
Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!
Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!
Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
🚀 How to: защититься от гонок данных в Laravel с помощью Cache::lock()
Когда несколько процессов одновременно пытаются изменить один и тот же ресурс, появляется риск race condition — непредсказуемых ошибок и потери данных.
В Laravel есть элегантное решение —
🔒 Как это работает
Вы создаёте именованный лок (
Пока лок удерживается, другие процессы не смогут выполнить код внутри него.
По окончании работы лок освобождается (или снимается автоматически по таймауту, если процесс «упал»).
🛠 Где применять
🔄 Обновление стока в интернет-магазине: гарантировать, что количество товара не «улетит» в минус при одновременных заказах.
💳 Финансовые транзакции: исключить двойное списание при параллельных платежах.
⚡️ Почему это удобно
Работает с Redis, Memcached и другими драйверами.
Таймаут защищает от «вечных» блокировок.
Минимальная нагрузка, но максимум безопасности для критичных операций.
👉 Если у вас распределённые воркеры или несколько серверов, используйте Cache::lock() для критичных секций кода. Это простой способ сохранить целостность данных и избавиться от коварных багов конкурентности.
🔗 Ссылка на статью
Когда несколько процессов одновременно пытаются изменить один и тот же ресурс, появляется риск race condition — непредсказуемых ошибок и потери данных.
В Laravel есть элегантное решение —
Cache::lock(), которое помогает реализовать атомарные блокировки даже в распределённых системах.🔒 Как это работает
Вы создаёте именованный лок (
Cache::lock("key", $seconds)), который «занимает» ресурс.Пока лок удерживается, другие процессы не смогут выполнить код внутри него.
По окончании работы лок освобождается (или снимается автоматически по таймауту, если процесс «упал»).
🛠 Где применять
🔄 Обновление стока в интернет-магазине: гарантировать, что количество товара не «улетит» в минус при одновременных заказах.
💳 Финансовые транзакции: исключить двойное списание при параллельных платежах.
⚡️ Почему это удобно
Работает с Redis, Memcached и другими драйверами.
Таймаут защищает от «вечных» блокировок.
Минимальная нагрузка, но максимум безопасности для критичных операций.
👉 Если у вас распределённые воркеры или несколько серверов, используйте Cache::lock() для критичных секций кода. Это простой способ сохранить целостность данных и избавиться от коварных багов конкурентности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Если часто работаешь с Git прямо из PhpStorm, есть один суперполезный трюк, который экономит кучу времени: интерактивный rebase через IDE.
🔍 Что это?
Вместо того чтобы открывать терминал и писать git rebase -i, можно делать интерактивное редактирование коммитов прямо в PhpStorm: объединять, редактировать сообщения или менять порядок коммитов.
⚡️ Как использовать?
1. Открой меню VCS → Git → Rebase → Interactive…
2. Выбери ветку, относительно которой хочешь сделать rebase.
3. В открывшемся списке коммитов можно:
• Edit — изменить сообщение или содержимое коммита
• Squash — объединить коммиты
• Reword — только изменить сообщение
• Drop — удалить коммит
Все изменения применяются прямо из интерфейса — никаких терминальных ошибок и лишних команд.
💡 Почему это круто?
Меньше ошибок при редактировании истории
Не нужно помнить синтаксис
git rebase -iБыстро объединяешь коммиты перед пушем
Полная визуализация истории прямо в IDE
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
PHP: Общая память
Хочется быстрый кеш или общение между процессами? Хочется использовать фишки long-running PHP, но без long-running?
Давайте разберёмся, как работать прямо с оперативной памятью: от System V до MapViewOfFile; От shmop до FFI.
🔗 Хабр
Библиотека пхпшника
Хочется быстрый кеш или общение между процессами? Хочется использовать фишки long-running PHP, но без long-running?
Давайте разберёмся, как работать прямо с оперативной памятью: от System V до MapViewOfFile; От shmop до FFI.
🔗 Хабр
Библиотека пхпшника
❤5👍3🤔1
У нас к вам несерьёзный вопрос — как вы называете X? Не букву, а социальную сеть. До сих пор говорите твиттер или привыкли, к тому, что это теперь икс?
Пишите свои варианты в комменты, а ещё подпишитесь на наш канал в твиттериксе
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26🔥2❤1👍1
Forwarded from Книги для программистов
Все мы знаем, что Linux — это не просто система, а целая философия. Но вот беда: админить её часто приходится по принципу «гуглишь до рассвета, молишься до обеда».
Книга обещает превратить хаос в порядок. Тут всё, что нужно начинающему (и не очень) админу: от файловых систем и сетевых настроек до веб-серверов, виртуализации и восстановления базы после того, как кто-то случайно дропнул ее на проде.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал
Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах.
Но всё самое интересное только начинается!
🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов.
💸 Сейчас действует специальная цена → 69.000 ₽ вместо79.000 ₽.
⏳ Осталось всего 4 места.
Не упустите шанс прокачаться в том, что будет определять будущее индустрии.
👉 Забронировать место на курсе
Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах.
Но всё самое интересное только начинается!
🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов.
💸 Сейчас действует специальная цена → 69.000 ₽ вместо
⏳ Осталось всего 4 места.
Не упустите шанс прокачаться в том, что будет определять будущее индустрии.
👉 Забронировать место на курсе
😁5😢2
💻 Подборка новостей по PHP за неделю:
🔹 Laravel Starter Kit — Nuno Maduro представил новый строгий стартовый набор для проектов. Он включает строгую проверку типов, форматирование и статический анализ на максимальных настройках.
🔹 PHP 8.5.0 RC 1 — вышел первый релиз-кандидат PHP 8.5.0, следующий шаг перед финальным релизом в ноябре. Также опубликованы багфикс-релизы PHP 8.3.26 и PHP 8.4.13.
🔹 Symfony 7.3.4 — вместе с ним выпущены версии 6.4.26 и 7.3.4.
🔹 Symfony 22–28 сентября 2025 — развитие Symfony 7.4 продолжается: добавлены новые функции и внесены депрекейшены перед релизом в ноябре.
Библиотека пхпшника
#свежак
🔹 Laravel Starter Kit — Nuno Maduro представил новый строгий стартовый набор для проектов. Он включает строгую проверку типов, форматирование и статический анализ на максимальных настройках.
🔹 PHP 8.5.0 RC 1 — вышел первый релиз-кандидат PHP 8.5.0, следующий шаг перед финальным релизом в ноябре. Также опубликованы багфикс-релизы PHP 8.3.26 и PHP 8.4.13.
🔹 Symfony 7.3.4 — вместе с ним выпущены версии 6.4.26 и 7.3.4.
🔹 Symfony 22–28 сентября 2025 — развитие Symfony 7.4 продолжается: добавлены новые функции и внесены депрекейшены перед релизом в ноябре.
Библиотека пхпшника
#свежак
❤1🔥1😢1
💡Совет по Laravel: Статистика обработчика HTTP-клиента
HTTP-клиент Laravel использует Guzzle, предоставляя доступ к статистике по каждому запросу, включая общее время, скорость загрузки и многое другое 🚀
Библиотека пхпшника
#vardump
HTTP-клиент Laravel использует Guzzle, предоставляя доступ к статистике по каждому запросу, включая общее время, скорость загрузки и многое другое 🚀
Библиотека пхпшника
#vardump
👍1
🔥 Saga pattern в PHP-микросервисах: как приручить хаос распределённых транзакций
Представьте: вы заказываете пиццу через приложение. В этот момент включается цепочка микросервисов: проверяется аккаунт, блокируются деньги, резервируется товар, создаётся заказ, уведомляется курьер, списываются бонусы. Всё идёт гладко… пока один из шагов не ломается. Что делать?
👉 Здесь на сцену выходит Saga pattern — способ координации распределённых транзакций без глобального коммита. Он превращает «монолитный» ACID-подход в управляемую серию шагов, каждый из которых либо завершается успешно, либо компенсируется обратным действием.
⚖️ Откуда растут ноги
В распределённых системах невозможно одновременно держать:
🔸 Consistency (согласованность),
🔸 Availability (доступность),
🔸 Partition Tolerance (устойчивость к сетевым сбоям).
CAP-теорема заставляет выбирать. Микросервисы обычно выбирают доступность + устойчивость, жертвуя мгновенной консистентностью.
Saga — это про eventual consistency и отказ от «всё или ничего» в пользу гибкой компенсации.
🧩 Основные принципы Saga
Локальные транзакции — каждая операция выполняется внутри своего сервиса и своей базы.
Компенсирующие действия — для каждого шага определяется обратное (отмена заказа, возврат средств, снятие резерва).
Pivot-операция — «точка невозврата», после которой процесс обязан завершиться (например, списание средств или отправка товара).
Идемпотентность — шаги должны безопасно повторяться (например, повторный возврат денег не должен удвоить баланс).
Наблюдаемость — все шаги саги должны логироваться и мониториться как единый процесс.
🕺 Хореография vs 🎼 Оркестрация
Хореография (event-driven):
Сервисы реагируют на события друг друга («создан заказ» → «оплата прошла» → «товар зарезервирован»).
Плюсы: нет центрального управляющего, меньше точек отказа, естественная асинхронность.
Минусы: сложно тестировать и дебажить, растут циклы и зависимости.
Оркестрация (central coordinator):
Есть управляющий компонент, который пошагово запускает сервисы и следит за компенсацией.
Плюсы: прозрачность, контроль, простая трассировка.
Минусы: единая точка отказа, риск узкого места.
🛡️ Типовые проблемы и решения
Lost update: несколько саг меняют один ресурс. Решение — семантические блокировки или оптимистические версии.
ABA-проблема: значение успело измениться A→B→A. Решение — векторные часы, версии.
Dirty read: один сервис читает «грязные» данные другого. Решение — откладывать коммиты или использовать операции как очередь.
Подвисшие саги: шаг завис или умер. Решение — таймауты + процесс восстановления.
🏗️ Что важно в проде
Чётко определённые компенсации для каждого шага.
Хранение состояния саги (статус, завершённые шаги, таймстемпы).
Автовосстановление: незавершённые саги нужно уметь продолжать или компенсировать.
Мониторинг и алерты: метрики (
Property-based тесты:
либо все шаги завершены,
либо все выполненные шаги компенсированы.
❓А вы бы выбрали хореографию событий (больше свободы, но сложнее отлаживать) или центрального дирижёра (прозрачность и контроль, но SPOF)?
🔗 Читать статью
Библиотека пхпшника
Представьте: вы заказываете пиццу через приложение. В этот момент включается цепочка микросервисов: проверяется аккаунт, блокируются деньги, резервируется товар, создаётся заказ, уведомляется курьер, списываются бонусы. Всё идёт гладко… пока один из шагов не ломается. Что делать?
👉 Здесь на сцену выходит Saga pattern — способ координации распределённых транзакций без глобального коммита. Он превращает «монолитный» ACID-подход в управляемую серию шагов, каждый из которых либо завершается успешно, либо компенсируется обратным действием.
⚖️ Откуда растут ноги
В распределённых системах невозможно одновременно держать:
🔸 Consistency (согласованность),
🔸 Availability (доступность),
🔸 Partition Tolerance (устойчивость к сетевым сбоям).
CAP-теорема заставляет выбирать. Микросервисы обычно выбирают доступность + устойчивость, жертвуя мгновенной консистентностью.
Saga — это про eventual consistency и отказ от «всё или ничего» в пользу гибкой компенсации.
🧩 Основные принципы Saga
Локальные транзакции — каждая операция выполняется внутри своего сервиса и своей базы.
Компенсирующие действия — для каждого шага определяется обратное (отмена заказа, возврат средств, снятие резерва).
Pivot-операция — «точка невозврата», после которой процесс обязан завершиться (например, списание средств или отправка товара).
Идемпотентность — шаги должны безопасно повторяться (например, повторный возврат денег не должен удвоить баланс).
Наблюдаемость — все шаги саги должны логироваться и мониториться как единый процесс.
🕺 Хореография vs 🎼 Оркестрация
Хореография (event-driven):
Сервисы реагируют на события друг друга («создан заказ» → «оплата прошла» → «товар зарезервирован»).
Плюсы: нет центрального управляющего, меньше точек отказа, естественная асинхронность.
Минусы: сложно тестировать и дебажить, растут циклы и зависимости.
Оркестрация (central coordinator):
Есть управляющий компонент, который пошагово запускает сервисы и следит за компенсацией.
Плюсы: прозрачность, контроль, простая трассировка.
Минусы: единая точка отказа, риск узкого места.
🛡️ Типовые проблемы и решения
Lost update: несколько саг меняют один ресурс. Решение — семантические блокировки или оптимистические версии.
ABA-проблема: значение успело измениться A→B→A. Решение — векторные часы, версии.
Dirty read: один сервис читает «грязные» данные другого. Решение — откладывать коммиты или использовать операции как очередь.
Подвисшие саги: шаг завис или умер. Решение — таймауты + процесс восстановления.
🏗️ Что важно в проде
Чётко определённые компенсации для каждого шага.
Хранение состояния саги (статус, завершённые шаги, таймстемпы).
Автовосстановление: незавершённые саги нужно уметь продолжать или компенсировать.
Мониторинг и алерты: метрики (
saga.started, saga.completed, saga.failed).Property-based тесты:
либо все шаги завершены,
либо все выполненные шаги компенсированы.
❓А вы бы выбрали хореографию событий (больше свободы, но сложнее отлаживать) или центрального дирижёра (прозрачность и контроль, но SPOF)?
🔗 Читать статью
Библиотека пхпшника
👍10❤3
Forwarded from Библиотека задач по PHP | тесты, код, задания
Что будет выведено в результате работы скрипта?
🤔2
Forwarded from Библиотека задач по PHP | тесты, код, задания
Что будет выведено в результате работы скрипта?
Anonymous Quiz
14%
Fatal error: Uncaught ArgumentCountError: min() expects exactly 2 parameters, 4 given
52%
Fatal error: Uncaught TypeError: min(): Argument #1 must be of type int, string given
20%
int(2)
14%
string(2) "!3"
👍3
🔥 PHP 8.5: релиз, который радует мелочами
Совсем скоро выходит PHP 8.5, и это именно та версия, где нет «вау»-революции, но есть куча приятных мелочей, которые сделают жизнь разработчика проще. Давайте разберёмся, что нового.
➡️ Pipe Operator
Теперь можно писать цепочки вызовов без временных переменных.
Код читается слева направо — и становится чище.
🛑 Атрибут #[NoDiscard]
Если функция возвращает значение, которое нельзя игнорировать — PHP предупредит. Это реально спасает от багов, когда кто-то «забыл» использовать результат вызова.
🔒 Closures в константах
Теперь можно использовать статические замыкания прямо в константах, свойствах по умолчанию и атрибутах. Отличный плюс для фреймворков с валидацией и метаданными.
🧰 Array helpers
🏷 Атрибуты для глобальных констант
Теперь константы можно помечать метаданными (например, #[Deprecated]). Удобно для больших пакетов и конфигураций.
⚡️ Новый get_exception_handler()
Наконец-то можно посмотреть, какой exception handler у вас сейчас установлен. Полезно для фреймворков и глобальной обработки ошибок.
🌍 Intl List Formatter
Форматирует списки по правилам локали: "Lisbon, Porto, and Coimbra". Для интернационализации — находка.
🖥 Улучшения в CLI
Константа
Final Property Promotion — можно делать отдельные свойства final.
Чуть более удобные ошибки и варнинги в CLI.
😀 Это та версия, которая не ломает привычки, а аккуратно убирает шероховатости. Если вы пишете на PHP каждый день — разницу почувствуете сразу.
🙂 Вопрос к вам: какая из фич PHP 8.5 войдёт в ваш код первой?
Совсем скоро выходит PHP 8.5, и это именно та версия, где нет «вау»-революции, но есть куча приятных мелочей, которые сделают жизнь разработчика проще. Давайте разберёмся, что нового.
➡️ Pipe Operator
Теперь можно писать цепочки вызовов без временных переменных.
Код читается слева направо — и становится чище.
🛑 Атрибут #[NoDiscard]
Если функция возвращает значение, которое нельзя игнорировать — PHP предупредит. Это реально спасает от багов, когда кто-то «забыл» использовать результат вызова.
🔒 Closures в константах
Теперь можно использовать статические замыкания прямо в константах, свойствах по умолчанию и атрибутах. Отличный плюс для фреймворков с валидацией и метаданными.
🧰 Array helpers
array_first() и array_last() — наконец-то нормальные функции для получения первого и последнего элемента массива. Без возни с указателем.🏷 Атрибуты для глобальных констант
Теперь константы можно помечать метаданными (например, #[Deprecated]). Удобно для больших пакетов и конфигураций.
⚡️ Новый get_exception_handler()
Наконец-то можно посмотреть, какой exception handler у вас сейчас установлен. Полезно для фреймворков и глобальной обработки ошибок.
🌍 Intl List Formatter
Форматирует списки по правилам локали: "Lisbon, Porto, and Coimbra". Для интернационализации — находка.
🖥 Улучшения в CLI
php -i --diff — показывает, чем ваша php.ini отличается от дефолта.Константа
PHP_BUILD_DATE — точная дата сборки бинаря.Final Property Promotion — можно делать отдельные свойства final.
Чуть более удобные ошибки и варнинги в CLI.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤🔥1
🚀 Laravel MCP: новая библиотека для AI-интеграций в Laravel
недавно в публичную бету вышел Laravel MCP — библиотека, которая позволяет разворачивать Model Context Protocol (MCP)-серверы прямо внутри вашего Laravel-приложения.
🔎 Что такое MCP?
Model Context Protocol (MCP) — это открытый стандарт, который помогает AI-ассистентам (ChatGPT, Claude, Cursor и др.) безопасно подключаться к внешним сервисам и данным. Вместо того чтобы писать отдельные интеграции для каждого ИИ, MCP предлагает универсальный API для агентов.
Laravel MCP поддерживает три ключевых примитива протокола:
🔸 Tools — выполнение действий: от генерации инвойсов до запуска команд.
🔸 Resources — предоставление данных и контента (документы, профили, отчёты).
🔸 Prompts — шаблоны для типовых запросов (ревью кода, модерация контента).
🛠️ Возможности Laravel MCP
Servers: точка входа для взаимодействия с AI.
Поддерживаются web-серверы (HTTP для удалённых клиентов) и локальные (artisan-команды для девелопмента).
Tools: выносите бизнес-логику наружу — AI сможет запускать её по запросу пользователя.
Resources: отдавайте данные приложения в структурированном виде.
Prompts: формируйте повторно используемые шаблоны общения с ИИ.
🔐 Безопасность
Laravel MCP поддерживает два подхода к защите web-серверов:
OAuth 2.1 (Laravel Passport) — надёжный вариант для продакшена.
Token-based (Laravel Sanctum) — простой и лёгкий способ защиты.
Дополнительно можно встраивать авторизацию прямо в обработчики инструментов и ресурсов.
📦 Установка
Требования: PHP 8.1+, Laravel 10/11/12.
Установка:
После — публикуете
🔬 Тестирование
🔹 MCP Inspector: CLI-утилита для проверки аутентификации и отладки MCP-сервера.
🔹 Unit tests: есть встроенные ассершены для проверки ответов и симуляции запросов.
💡 Где применять
🔹 Для разработчиков: генерация кода, запуск artisan-команд, автоматизация тестов.
🔹 Для бизнеса: AI-инвойсинг, управление пользователями, публикация контента.
🔹 В энтерпрайзе: интеграция с CRM/ERP, автоматическая обработка заявок, предиктивная аналитика.
🔹 Для данных: безопасный доступ к профилям, заказам и сторонним API прямо из AI-чатов.
⚡️ Laravel MCP превращает Laravel-приложение в «AI-совместимый» сервис. Теперь вместо кастомных интеграций можно один раз поднять MCP-сервер и позволить ассистентам напрямую использовать ваши бизнес-процессы.
👉 Вопрос: какие функции вы бы первыми открыли для LLM через MCP — генерацию кода, работу с базой или бизнес-логику?
🗂️ Документация
Библиотека пхпшника
#инструменты
недавно в публичную бету вышел Laravel MCP — библиотека, которая позволяет разворачивать Model Context Protocol (MCP)-серверы прямо внутри вашего Laravel-приложения.
🔎 Что такое MCP?
Model Context Protocol (MCP) — это открытый стандарт, который помогает AI-ассистентам (ChatGPT, Claude, Cursor и др.) безопасно подключаться к внешним сервисам и данным. Вместо того чтобы писать отдельные интеграции для каждого ИИ, MCP предлагает универсальный API для агентов.
Laravel MCP поддерживает три ключевых примитива протокола:
🔸 Tools — выполнение действий: от генерации инвойсов до запуска команд.
🔸 Resources — предоставление данных и контента (документы, профили, отчёты).
🔸 Prompts — шаблоны для типовых запросов (ревью кода, модерация контента).
🛠️ Возможности Laravel MCP
Servers: точка входа для взаимодействия с AI.
Поддерживаются web-серверы (HTTP для удалённых клиентов) и локальные (artisan-команды для девелопмента).
Tools: выносите бизнес-логику наружу — AI сможет запускать её по запросу пользователя.
Resources: отдавайте данные приложения в структурированном виде.
Prompts: формируйте повторно используемые шаблоны общения с ИИ.
🔐 Безопасность
Laravel MCP поддерживает два подхода к защите web-серверов:
OAuth 2.1 (Laravel Passport) — надёжный вариант для продакшена.
Token-based (Laravel Sanctum) — простой и лёгкий способ защиты.
Дополнительно можно встраивать авторизацию прямо в обработчики инструментов и ресурсов.
📦 Установка
Требования: PHP 8.1+, Laravel 10/11/12.
Установка:
composer require laravel/mcp.После — публикуете
routes/ai.php, где настраиваются MCP-сервера.🔬 Тестирование
🔹 MCP Inspector: CLI-утилита для проверки аутентификации и отладки MCP-сервера.
🔹 Unit tests: есть встроенные ассершены для проверки ответов и симуляции запросов.
💡 Где применять
🔹 Для разработчиков: генерация кода, запуск artisan-команд, автоматизация тестов.
🔹 Для бизнеса: AI-инвойсинг, управление пользователями, публикация контента.
🔹 В энтерпрайзе: интеграция с CRM/ERP, автоматическая обработка заявок, предиктивная аналитика.
🔹 Для данных: безопасный доступ к профилям, заказам и сторонним API прямо из AI-чатов.
⚡️ Laravel MCP превращает Laravel-приложение в «AI-совместимый» сервис. Теперь вместо кастомных интеграций можно один раз поднять MCP-сервер и позволить ассистентам напрямую использовать ваши бизнес-процессы.
👉 Вопрос: какие функции вы бы первыми открыли для LLM через MCP — генерацию кода, работу с базой или бизнес-логику?
🗂️ Документация
Библиотека пхпшника
#инструменты
🥱8❤3