How to: мигрировать Laravel-блог с PostgreSQL + Elasticsearch на MongoDB Atlas
Хотите упростить инфраструктуру и избавиться от зоопарка из PostgreSQL + Elasticsearch? В статье показан пошаговый пример миграции блога на Laravel c реляционной схемы на MongoDB Atlas, где база и полнотекстовый поиск живут в одном месте.
Краткий план:
1. Клонируете демо-проект:
2. Разворачиваете бесплатный кластер в MongoDB Atlas и получаете connection string.
3. Подключаете пакет
4. Через MongoDB Relational Migrator переносите данные из PostgreSQL, при этом комменты постов превращаются в embedded-документы.
5. Включаете Atlas Search и переписываете поиск в контроллере на
🔗 Читать статью
Библиотека пхпшника
Хотите упростить инфраструктуру и избавиться от зоопарка из PostgreSQL + Elasticsearch? В статье показан пошаговый пример миграции блога на Laravel c реляционной схемы на MongoDB Atlas, где база и полнотекстовый поиск живут в одном месте.
Краткий план:
1. Клонируете демо-проект:
laravel-postgresql-to-mongodb и поднимаете стэк Laravel + PostgreSQL + Elasticsearch через docker compose up -d.2. Разворачиваете бесплатный кластер в MongoDB Atlas и получаете connection string.
3. Подключаете пакет
mongodb/laravel-mongodb, настраиваете новое подключение в config/database.php и переключаете модели на MongoDB-модели.4. Через MongoDB Relational Migrator переносите данные из PostgreSQL, при этом комменты постов превращаются в embedded-документы.
5. Включаете Atlas Search и переписываете поиск в контроллере на
Post::search(...) — без Laravel Scout и без отдельного Elasticsearch.🔗 Читать статью
Библиотека пхпшника
🔥 На рынке сейчас математика — снова король: AI растёт быстрее, чем вузы успевают обновлять программы. Мы же перестраиваем курс под индустрию мгновенно.
Хочешь наконец разобраться в математике для DS, а не гуглить «что такое градиент» перед собесом?
Новый курс «Математика для разработки AI-моделей» — это 8 недель плотной подготовки, свежая программа и только актуальные темы, которые реально нужны в ML.
Что в курсе:
→ линал, производные, градиенты, вероятности, статистика;
→ практика на Python и 3 большие ДЗ;
→ живые вебинары + разбор ваших вопросов;
→ финальный мини-проект, который можно положить в портфолио;
→ доступ к материалам и чат с экспертами.
Для старта нужны только школьная математика и базовый Python.
🎁 Бонусы ноября:
— скидка 40% до 30 ноября;
— «Базовая математика» в подарок при оплате;
→ бесплатный тест уровня математики.
👉 Записывайся на курс
Хочешь наконец разобраться в математике для DS, а не гуглить «что такое градиент» перед собесом?
Новый курс «Математика для разработки AI-моделей» — это 8 недель плотной подготовки, свежая программа и только актуальные темы, которые реально нужны в ML.
Что в курсе:
→ линал, производные, градиенты, вероятности, статистика;
→ практика на Python и 3 большие ДЗ;
→ живые вебинары + разбор ваших вопросов;
→ финальный мини-проект, который можно положить в портфолио;
→ доступ к материалам и чат с экспертами.
Для старта нужны только школьная математика и базовый Python.
🎁 Бонусы ноября:
— скидка 40% до 30 ноября;
— «Базовая математика» в подарок при оплате;
→ бесплатный тест уровня математики.
👉 Записывайся на курс
🥱2
📡 Веб-панель для Amnezia AWG VPN на PHP — удобный контроль доступа без клиентов
Официальные приложения Amnezia удобны для личного использования, но в компаниях быстро упираются в потолок: много серверов, много сотрудников, нужны автоматизация и единая точка управления. Поэтому и появилась веб-панель amneziavpnphp — лёгкий PHP-интерфейс, который берёт управление VPN на себя.
🔧 Что уже есть
🔸 Установка и управление Amnezia AWG на VPS (Ubuntu 22–24) через SSH
🔸 Создание, отзыв и восстановление ключей
🔸 QR-коды для быстрого подключения
🔸 REST API с JWT — удобно автоматизировать и интегрировать в HR/DevOps
🔸 Статистика по каждому клиенту
🔸 Интерфейс на 6 языках
🔸 MIT-лицензия — можно адаптировать под себя
🏢 Зачем это нужно компаниям
Сценарий простой: удалённые сотрудники, нужен доступ к внутренним ресурсам, а раздавать конфиги вручную — боль.
Панель разворачивается за пару минут (Docker), позволяет подключить несколько серверов, выдавать доступы в один клик и отзывать их так же быстро. Через API можно автоматизировать выдачу VPN при онбординге.
👉 Хабр
Библиотека пхпшника
Официальные приложения Amnezia удобны для личного использования, но в компаниях быстро упираются в потолок: много серверов, много сотрудников, нужны автоматизация и единая точка управления. Поэтому и появилась веб-панель amneziavpnphp — лёгкий PHP-интерфейс, который берёт управление VPN на себя.
🔧 Что уже есть
🔸 Установка и управление Amnezia AWG на VPS (Ubuntu 22–24) через SSH
🔸 Создание, отзыв и восстановление ключей
🔸 QR-коды для быстрого подключения
🔸 REST API с JWT — удобно автоматизировать и интегрировать в HR/DevOps
🔸 Статистика по каждому клиенту
🔸 Интерфейс на 6 языках
🔸 MIT-лицензия — можно адаптировать под себя
🏢 Зачем это нужно компаниям
Сценарий простой: удалённые сотрудники, нужен доступ к внутренним ресурсам, а раздавать конфиги вручную — боль.
Панель разворачивается за пару минут (Docker), позволяет подключить несколько серверов, выдавать доступы в один клик и отзывать их так же быстро. Через API можно автоматизировать выдачу VPN при онбординге.
👉 Хабр
Библиотека пхпшника
👍4
🧠 Скейффолдинг в Laravel — создавайте всё одной командой
Laravel позволяет с помощью одной команды генерации создать модель, а вместе с ней — опционально: миграцию, фабрику, сидер, контроллер и даже политику. Это сокращает многократный ручной ввод команд и ускоряет старт фичи.
🔧 Как использовать
Пример команды:
Где:
Также есть опция
💡 Почему это экономит время
Вместо пяти-шести команд — одна.
Нет необходимости помнить и вручную вводить каждый флаг.
Код структуры проекта создаётся сразу с предустановками, минимизируя ручные правки.
Особенно полезно при работе над новой сущностью: быстро поднять модель + таблицу + контроллер + тестовые данные.
⚠️ Что учитывать
Генерация по шаблонам может не полностью соответствовать вашей архитектуре — проверьте результаты и при необходимости отредактируйте.
Если у вас нет опыта с фабриками/сидерами/контроллерами — возможно, часть файлов будет не нужна, и их придётся удалить или переосмыслить.
Следите за тем, чтобы имена и пространства имён (namespace) моделей/контроллеров соответствовали вашим правилам проекта.
Библиотека пхпшника
Laravel позволяет с помощью одной команды генерации создать модель, а вместе с ней — опционально: миграцию, фабрику, сидер, контроллер и даже политику. Это сокращает многократный ручной ввод команд и ускоряет старт фичи.
🔧 Как использовать
Пример команды:
php artisan make:model Flight -mfscГде:
-m / --migration — создать миграцию. -f / --factory — создать фабрику.-s / --seed — создать сидер. -c / --controller — создать контроллер.Также есть опция
--all / -a, которая создаёт полный набор: модель, миграцию, фабрику, сидер, контроллер, форму-запросы и политику.💡 Почему это экономит время
Вместо пяти-шести команд — одна.
Нет необходимости помнить и вручную вводить каждый флаг.
Код структуры проекта создаётся сразу с предустановками, минимизируя ручные правки.
Особенно полезно при работе над новой сущностью: быстро поднять модель + таблицу + контроллер + тестовые данные.
⚠️ Что учитывать
Генерация по шаблонам может не полностью соответствовать вашей архитектуре — проверьте результаты и при необходимости отредактируйте.
Если у вас нет опыта с фабриками/сидерами/контроллерами — возможно, часть файлов будет не нужна, и их придётся удалить или переосмыслить.
Следите за тем, чтобы имена и пространства имён (namespace) моделей/контроллеров соответствовали вашим правилам проекта.
Библиотека пхпшника
🔥3
📌 PHP 8.5: новая константа для точной проверки сборки
В PHP 8.5 появилась небольшая, но очень практичная вещь — PHP_BUILD_DATE.
Это точная дата и время, когда был собран ваш PHP-бинари.
Раньше такие данные прятались глубоко в
неудобно, неструктурировано, автоматизировать сложно.
Теперь — одна строка в коде:
💡 Зачем это нужно
Версия PHP — ещё не гарантия того, что два сервера работают на одинаковой сборке.
PHP 8.5.0, собранный 10 сентября и 20 сентября, может отличаться библиотеками, флагами, патчами.
даёт быстрый и точный «отпечаток» сборки.
Полезно для:
🔧 диагностики «на этом сервере работает, на другом — нет»
🧰 проверки Docker/CI сборок
🔐 аудитов и комплаенса
📈 /health-эндпоинтов и логирования
⚙️ строгой трассировки окружения
⚙️ Пример
Библиотека пхпшника
В PHP 8.5 появилась небольшая, но очень практичная вещь — PHP_BUILD_DATE.
Это точная дата и время, когда был собран ваш PHP-бинари.
Раньше такие данные прятались глубоко в
phpinfo():неудобно, неструктурировано, автоматизировать сложно.
Теперь — одна строка в коде:
echo PHP_BUILD_DATE;
// Sep 16 2025 10:44:26
💡 Зачем это нужно
Версия PHP — ещё не гарантия того, что два сервера работают на одинаковой сборке.
PHP 8.5.0, собранный 10 сентября и 20 сентября, может отличаться библиотеками, флагами, патчами.
PHP_BUILD_DATE решает эту проблему:даёт быстрый и точный «отпечаток» сборки.
Полезно для:
🔧 диагностики «на этом сервере работает, на другом — нет»
🧰 проверки Docker/CI сборок
🔐 аудитов и комплаенса
📈 /health-эндпоинтов и логирования
⚙️ строгой трассировки окружения
⚙️ Пример
php
echo PHP_VERSION; // 8.5.0
echo PHP_BUILD_DATE; // Sep 16 2025 10:44:26
$dt = DateTimeImmutable::createFromFormat('M j Y H:i:s', PHP_BUILD_DATE);
echo $dt->format('c'); // 2025-09-16T10:44:26+00:00
Библиотека пхпшника
👍6
🎄 Скоро Новый год, а ты всё ещё не в бигтехе?
Если твой путь лежит в ML, DS или AI, то одна вещь решает всё: математика. Без неё — хоть три проекта сделай, хоть сотню туториалов посмотри — на собесе тебя всё равно вернут на «а что такое градиент?»
🔥 Экспресс-курс «Математика для разработки AI-моделей» — 8 недель, чтобы закрыть базу раз и навсегда.
Что внутри:
🔘 живые вебинары, где можно задавать вопросы экспертам
🔘 записи лекций + доступ к материалам
🔘 практические задания на Python и финальный мини-проект с фидбеком
🔘 программа обновлена в ноябре 2025
🔘 2 месяца только нужного — без воды
🔘 достаточно школьной математики и базового Python
🎁 Бонусы ноября:
→ 40% скидка до 30 ноября
→ при оплате до конца месяца — курс «Базовая математика» в подарок
→ бесплатный тест, чтобы узнать свой уровень математики
👉 Хочу стартовать
Если твой путь лежит в ML, DS или AI, то одна вещь решает всё: математика. Без неё — хоть три проекта сделай, хоть сотню туториалов посмотри — на собесе тебя всё равно вернут на «а что такое градиент?»
🔥 Экспресс-курс «Математика для разработки AI-моделей» — 8 недель, чтобы закрыть базу раз и навсегда.
Что внутри:
🔘 живые вебинары, где можно задавать вопросы экспертам
🔘 записи лекций + доступ к материалам
🔘 практические задания на Python и финальный мини-проект с фидбеком
🔘 программа обновлена в ноябре 2025
🔘 2 месяца только нужного — без воды
🔘 достаточно школьной математики и базового Python
🎁 Бонусы ноября:
→ 40% скидка до 30 ноября
→ при оплате до конца месяца — курс «Базовая математика» в подарок
→ бесплатный тест, чтобы узнать свой уровень математики
👉 Хочу стартовать
❤1
В одном из российских вузов начали учить студентов программированию на кириллице. Полностью перевели JavaScript: вместо
Представим себе PHP на кириллице.
Ирония в том, что PHP и так начинался как Personal Home Page Tools — язык, выросший из простых скриптов, документации и огромного количества англоязычных инструментов. Composer, PSR-стандарты, автозагрузка, Symfony/Laravel, статический анализ, CI-пайплайны — вся экосистема держится на единой терминологии.
Локализованный синтаксис может помочь новичку понять структуру условий, функций и возвращаемых значений. Но профессиональный PHP — это стандартизация, RFC-процессы, спецификации и огромный международный комьюнити, где названия
💬 Напишите свой последний PHP-код на кириллице в комментах 👇
Библиотека пхпшника
function — «функция», вместо if — «если», ни одной латинской буквы.Представим себе PHP на кириллице.
php
<?php
включить «бд.php»;
функция получить_пользователя(цел $ид) : массив {
если ($ид < 1) {
вернуть [];
}
вернуть запрос_к_бд(«выбрать * из пользователи где ид = ?», [$ид]);
}
пользователь = получить_пользователя(10);
если (пользователь) {
вывести(«Привет, {$пользователь['имя']}!»);
}
Ирония в том, что PHP и так начинался как Personal Home Page Tools — язык, выросший из простых скриптов, документации и огромного количества англоязычных инструментов. Composer, PSR-стандарты, автозагрузка, Symfony/Laravel, статический анализ, CI-пайплайны — вся экосистема держится на единой терминологии.
Локализованный синтаксис может помочь новичку понять структуру условий, функций и возвращаемых значений. Но профессиональный PHP — это стандартизация, RFC-процессы, спецификации и огромный международный комьюнити, где названия
interface, trait и namespace — это не просто слова, а общая профессиональная культура.💬 Напишите свой последний PHP-код на кириллице в комментах 👇
Библиотека пхпшника
🤔2👏1👾1
array_column() — это очень удобная встроенная функция PHP, которая извлекает индекс из списка массивов или публичное свойство из списка объектов.
Третий аргумент
Обратите внимание, что дублирующиеся ключи будут перезаписаны.
🤌 Бонусы для подписчиков:
— Скидка 40% на все курсы Академии
— Розыгрыш Apple MacBook
— Бесплатный тест на знание математики
Библиотека пхпшника
#vardump
Третий аргумент
array_column() — это ключ, который будет использоваться для ссылки на значение в результирующем массиве. Это очень удобно для превращения массива в хэш.Обратите внимание, что дублирующиеся ключи будут перезаписаны.
🤌 Бонусы для подписчиков:
— Скидка 40% на все курсы Академии
— Розыгрыш Apple MacBook
— Бесплатный тест на знание математики
Библиотека пхпшника
#vardump
👍7🥱1
Forwarded from Книги для программистов
В новой версии руководства тебя ждут передовые методы работы с JWT (на основе проекта рабочей группы IETF по OAuth).
Читай, если:
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Хочешь строить свои AI-модели, а не просто запускать чужие?
Proglib.academy открывает курс «Математика для разработки AI-моделей» — программу, которая превращает понимание ML из «черного ящика» в осознанную инженерную работу.
📌 Почему без математики в AI никуда:
→ Чтобы пройти собеседование. Это первый фильтр: линал, матстат, оптимизация — спрашивают везде.
→ Чтобы понимать процесс изнутри. Инженер AI должен понимать, почему и как работает модель, а не просто жать fit().
🎓 Что будет на курсе:
→ 3 практических задания на Python + финальный проект с разбором от специалистов;
→ программа обновлена в ноябре 2025;
→ за 2 месяца пройдёшь весь фундамент, нужный для работы с моделями;
→ преподаватели — гуру математики, методисты и исследователи из ВШЭ и индустрии.
🎁 Бонусы ноября:
— 40% скидка;
— получаешь курс «Школьная математика» в подарок;
— короткий тест и узнать свой уровень.
🔗 Подробнее о курсе
Proglib.academy открывает курс «Математика для разработки AI-моделей» — программу, которая превращает понимание ML из «черного ящика» в осознанную инженерную работу.
📌 Почему без математики в AI никуда:
→ Чтобы пройти собеседование. Это первый фильтр: линал, матстат, оптимизация — спрашивают везде.
→ Чтобы понимать процесс изнутри. Инженер AI должен понимать, почему и как работает модель, а не просто жать fit().
🎓 Что будет на курсе:
→ 3 практических задания на Python + финальный проект с разбором от специалистов;
→ программа обновлена в ноябре 2025;
→ за 2 месяца пройдёшь весь фундамент, нужный для работы с моделями;
→ преподаватели — гуру математики, методисты и исследователи из ВШЭ и индустрии.
🎁 Бонусы ноября:
— 40% скидка;
— получаешь курс «Школьная математика» в подарок;
— короткий тест и узнать свой уровень.
🔗 Подробнее о курсе
💻 Подборка новостей по PHP за неделю:
🔹 Laravel 12.39 — добавлена директива Blade
🔹 Symfony 7.4 — опубликована подборка новых возможностей грядущего релиза. Благодаря строгому соблюдению обратной совместимости обновление до 7.4 не потребует изменений в коде.
🔹 CodeRabbit — компания привлекла $60 млн (Series B) и отпраздновала выпуском шуточного короткометражного видео с участием Аарона Фрэнсиса.
🔹 Symfony 17–23 ноября — выпущены RC-версии Symfony 7.4 и 8.0 (релиз ожидается на следующей неделе). Начата работа над Symfony 8.1, намеченной на май 2026. Также опубликованы новые детали конференции SymfonyCon 2025.
Библиотека пхпшника
#свежак
🔹 Laravel 12.39 — добавлена директива Blade
@hasStack, упрощающая проверку наличия стека; флаг для фильтрации middleware в route:list; обновления типов и исправления.🔹 Symfony 7.4 — опубликована подборка новых возможностей грядущего релиза. Благодаря строгому соблюдению обратной совместимости обновление до 7.4 не потребует изменений в коде.
🔹 CodeRabbit — компания привлекла $60 млн (Series B) и отпраздновала выпуском шуточного короткометражного видео с участием Аарона Фрэнсиса.
🔹 Symfony 17–23 ноября — выпущены RC-версии Symfony 7.4 и 8.0 (релиз ожидается на следующей неделе). Начата работа над Symfony 8.1, намеченной на май 2026. Также опубликованы новые детали конференции SymfonyCon 2025.
Библиотека пхпшника
#свежак
💡 Совет по Laravel: Отправка после ответа
Иногда определенные задачи, такие как отправка электронных писем, не обязательно должны ставиться в очередь и обрабатываться рабочим процессом. В таких случаях можно воспользоваться методом
Библиотека пхпшника
#vardump
Иногда определенные задачи, такие как отправка электронных писем, не обязательно должны ставиться в очередь и обрабатываться рабочим процессом. В таких случаях можно воспользоваться методом
dispatchAfterResponse(). Как и следует из названия, этот метод отправляет задание сразу после того, как сервер отвечает пользователю. Быстрый ответ для клиента без нагрузки на рабочий процесс незначительными задачами 🚀 Библиотека пхпшника
#vardump
🔥1
🔥 Мокирование статических методов и встроенных функций в PHP — без боли и рефакторинга
Тестировать код, который опирается на статические методы или встроенные функции — задача неприятная. Обычно это заканчивается лишними абстракциями, «обёртками» и переписыванием половины приложения.
Чтобы избежать этого и писать чистые тесты без хирургии в прод-коде, появился MintyPHP Mocking — небольшая, аккуратная библиотека, которая позволяет мокировать и статические методы, и встроенные функции PHP.
🧩 Что умеет библиотека
✨ Мок статических методов
Вы указываете ожидаемый вызов и результат — и дальше обращаетесь к классу как обычно.
✨ Мок встроенных функций
В том числе
✨ Никаких обвязок и костылей
Ни интерфейсов, ни врапперов, ни перегретого DI — мок просто перехватывает вызовы.
⚙️ Как это работает под капотом
🟣 Для статических методов:
Библиотека вставляет свой автолоадер раньше настоящего класса и подменяет его stub-версией. Все вызовы проходят через ваши ожидания.
🟣 Для встроенных функций:
В нужном namespace на лету создаётся функция с таким же именем. PHP всегда сначала проверяет текущий namespace и только потом глобальный — этим и пользуемся.
📌 Важные нюансы
🟢 Ожидания работают в порядке FIFO
🟢 Аргументы сверяются через
🔴 Лишний вызов → «No expectations left»
🔴 Не все ожидания израсходованы → тест падает
🟡 Namespace имеет значение
🟡 Вызовы через
🧪 Зачем это нужно?
• Тестировать код без переписывания архитектуры
• Быстро изолировать поведение зависимостей
• Проверять корректность взаимодействий, а не реализаций
• Экономить время и не городить лишние уровни абстракции
🔗 Статья с примерами
Библиотека пхпшника
Тестировать код, который опирается на статические методы или встроенные функции — задача неприятная. Обычно это заканчивается лишними абстракциями, «обёртками» и переписыванием половины приложения.
Чтобы избежать этого и писать чистые тесты без хирургии в прод-коде, появился MintyPHP Mocking — небольшая, аккуратная библиотека, которая позволяет мокировать и статические методы, и встроенные функции PHP.
🧩 Что умеет библиотека
✨ Мок статических методов
Вы указываете ожидаемый вызов и результат — и дальше обращаетесь к классу как обычно.
✨ Мок встроенных функций
В том числе
microtime(), file_get_contents(), random_int() — любые, если они вызываются в вашем namespace без слэша.✨ Никаких обвязок и костылей
Ни интерфейсов, ни врапперов, ни перегретого DI — мок просто перехватывает вызовы.
⚙️ Как это работает под капотом
🟣 Для статических методов:
Библиотека вставляет свой автолоадер раньше настоящего класса и подменяет его stub-версией. Все вызовы проходят через ваши ожидания.
🟣 Для встроенных функций:
В нужном namespace на лету создаётся функция с таким же именем. PHP всегда сначала проверяет текущий namespace и только потом глобальный — этим и пользуемся.
📌 Важные нюансы
🟢 Ожидания работают в порядке FIFO
🟢 Аргументы сверяются через
assertEquals🔴 Лишний вызов → «No expectations left»
🔴 Не все ожидания израсходованы → тест падает
🟡 Namespace имеет значение
🟡 Вызовы через
\microtime() не перехватываются🧪 Зачем это нужно?
• Тестировать код без переписывания архитектуры
• Быстро изолировать поведение зависимостей
• Проверять корректность взаимодействий, а не реализаций
• Экономить время и не городить лишние уровни абстракции
🔗 Статья с примерами
Библиотека пхпшника
👍6❤1
📘 4 декабря стартует набор на курс «Математика для разработки AI-моделей»
Если вы работаете с моделями или хотите перейти в DS/ML, декабрь — идеальный момент закрыть фундаментальные пробелы.
На курсе вы разберёте ключевые разделы, которые лежат в основе современных AI-моделей: линейная алгебра, анализ, оптимизация, математический анализ, вероятности, статистика. Всё через практику в Python.
В программе живые занятия с экспертами AI-индустрии (SberAI, ВШЭ, WB&Russ), разбор реальных задач, квизы и финальный проект.
🌐 Формат: онлайн + доступ к записям
🎁 Бонусы: курс «Школьная математика» в подарок, бесплатный тест по математике
После лекций будет разбор ваших решений и возможность задать вопросы преподавателям.
👉 Записаться на курс
Если вы работаете с моделями или хотите перейти в DS/ML, декабрь — идеальный момент закрыть фундаментальные пробелы.
На курсе вы разберёте ключевые разделы, которые лежат в основе современных AI-моделей: линейная алгебра, анализ, оптимизация, математический анализ, вероятности, статистика. Всё через практику в Python.
В программе живые занятия с экспертами AI-индустрии (SberAI, ВШЭ, WB&Russ), разбор реальных задач, квизы и финальный проект.
🌐 Формат: онлайн + доступ к записям
🎁 Бонусы: курс «Школьная математика» в подарок, бесплатный тест по математике
После лекций будет разбор ваших решений и возможность задать вопросы преподавателям.
👉 Записаться на курс
Forwarded from Библиотека задач по PHP | тесты, код, задания
Отработает ли данный код?
Anonymous Quiz
40%
код успешно отработает
60%
Fatal error: Default value for property of type DateTimeInterface may not be null.
Saloon vs Guzzle vs Laravel HTTP Client vs SDK-решения
🧩 Saloon
«Фреймворк» для построения API-интеграций и SDK внутри PHP / Laravel-приложений.
➕ Сильные стороны:
✨ Структура: выделенные классы Connector и Request позволяют логично организовать код.
🚀 Богатый набор функций: кеширование, пагинация, повторы запросов, тест-фикстуры.
📚 Отлично подходит, если интеграций много и они развиваются — нужен читаемый, расширяемый слой.
➖ Ограничения:
⚙️ Дополнительный уровень абстракции: может быть избыточен для простых случаев.
🧠 Требует привыкания к концепциям Connector/Request.
📦 Новая зависимость — нужно следить за обновлениями и совместимостью.
🧱 Guzzle
Классическая библиотека-HTTP-клиент PHP.
➕ Сильные стороны:
🔧 Очень гибкая: прямой контроль над HTTP-запросами, поддержка асинхронности.
🧮 Минимум обёрток: чистый доступ к HTTP-уровню.
➖ Ограничения:
🧩 Не столь читаема при большом количестве интеграций — код становится «сырой».
🧪 Нет встроенной структуры для интеграций и тестирования сверху — требует дисциплины.
🎯 Laravel HTTP Client (Facade)
Обёртка над Guzzle от Laravel, ориентированная на удобство.
➕ Сильные стороны:
✅ Очень прост в использовании: читаемый код, удобные методы.
🧪 Отличные инструменты для тестов: легко подменять вызовы и «подслушивать» HTTP-запросы.
🛠️ Быстрая точка входа для API-запросов.
➖ Ограничения:
🔎 Меньше встроенной архитектуры для масштабных интеграций.
📉 При расширении проекта могут понадобиться дополнительные решения.
📦 SDK стороннего сервиса
Готовое решение-обёртка над API, предоставляемое сервисом.
➕ Сильные стороны:
⚡ Высокая скорость реализации: всё почти готово.
👍 Возможно хорошая поддержка и обновления.
➖ Ограничения:
🧨 Зависимость от качества SDK: риск, если поддержка слабая.
🧩 Немного пространства для кастомизации — архитектура может требовать другого подхода.
🤔 Может быть «чёрным ящиком», который сложнее отлаживать.
📌 Итого: какой вариант выбрать?
🟢 Интеграция простая — один-два запроса, без сложной логики: выбирайте Laravel HTTP Client или Guzzle.
🟢 Интеграции растут, логика становится сложной, нужны тесты, кеширование, пагинация — тогда Saloon даст структуру и безопасность.
🟢 Сервис предоставляет качественный SDK — разумно им воспользоваться, но оборачивайте его за интерфейсом, чтобы не оказаться заложником.
🔴 И никогда не стоит делать всё через raw cURL без обёртки: код быстро превращается в хаос, тестирование становится трудоёмким.
Библиотека пхпшника
#элементарный_выбор
🧩 Saloon
«Фреймворк» для построения API-интеграций и SDK внутри PHP / Laravel-приложений.
➕ Сильные стороны:
✨ Структура: выделенные классы Connector и Request позволяют логично организовать код.
🚀 Богатый набор функций: кеширование, пагинация, повторы запросов, тест-фикстуры.
📚 Отлично подходит, если интеграций много и они развиваются — нужен читаемый, расширяемый слой.
➖ Ограничения:
⚙️ Дополнительный уровень абстракции: может быть избыточен для простых случаев.
🧠 Требует привыкания к концепциям Connector/Request.
📦 Новая зависимость — нужно следить за обновлениями и совместимостью.
🧱 Guzzle
Классическая библиотека-HTTP-клиент PHP.
➕ Сильные стороны:
🔧 Очень гибкая: прямой контроль над HTTP-запросами, поддержка асинхронности.
🧮 Минимум обёрток: чистый доступ к HTTP-уровню.
➖ Ограничения:
🧩 Не столь читаема при большом количестве интеграций — код становится «сырой».
🧪 Нет встроенной структуры для интеграций и тестирования сверху — требует дисциплины.
🎯 Laravel HTTP Client (Facade)
Обёртка над Guzzle от Laravel, ориентированная на удобство.
➕ Сильные стороны:
✅ Очень прост в использовании: читаемый код, удобные методы.
🧪 Отличные инструменты для тестов: легко подменять вызовы и «подслушивать» HTTP-запросы.
🛠️ Быстрая точка входа для API-запросов.
➖ Ограничения:
🔎 Меньше встроенной архитектуры для масштабных интеграций.
📉 При расширении проекта могут понадобиться дополнительные решения.
📦 SDK стороннего сервиса
Готовое решение-обёртка над API, предоставляемое сервисом.
➕ Сильные стороны:
⚡ Высокая скорость реализации: всё почти готово.
👍 Возможно хорошая поддержка и обновления.
➖ Ограничения:
🧨 Зависимость от качества SDK: риск, если поддержка слабая.
🧩 Немного пространства для кастомизации — архитектура может требовать другого подхода.
🤔 Может быть «чёрным ящиком», который сложнее отлаживать.
📌 Итого: какой вариант выбрать?
🟢 Интеграция простая — один-два запроса, без сложной логики: выбирайте Laravel HTTP Client или Guzzle.
🟢 Интеграции растут, логика становится сложной, нужны тесты, кеширование, пагинация — тогда Saloon даст структуру и безопасность.
🟢 Сервис предоставляет качественный SDK — разумно им воспользоваться, но оборачивайте его за интерфейсом, чтобы не оказаться заложником.
🔴 И никогда не стоит делать всё через raw cURL без обёртки: код быстро превращается в хаос, тестирование становится трудоёмким.
Библиотека пхпшника
#элементарный_выбор
👍3😁1
🚀 Сегодня разбираем библиотеку Claude‑PHP‑SDK — универсальный PHP SDK для работы с API Anthropic (модель Claude) с полной реализацией функционала официального Python-SDK.
🧱 Что это такое
Поддерживает полный 1-к-1 функционал официальной Python-библиотеки: работа с «Messages», «Files», «Batches», «Models».
Код соответствует стандартам PSR-12 + использует PSR-11 (внедрение зависимостей) — значит, хорошо ложится в современные PHP-фреймворки.
Фреймворк-независим: можно использовать в Laravel, Symfony, Slim и других.
✅ Что умеет
Поддержка моделей: Claude Sonnet 4.5, Haiku 4.5, Opus 4.1.
Расширенные функции: vision (анализ изображений), стриминг, batch-обработка, embeddings, tool-use (инструменты) и «extended thinking».
Асинхронная готовность с поддержкой Amphp.
Большое количество примеров: более 80 файлов, >11 000 строк покрывают документацию Claude-API.
⚠️ На что обратить внимание
🔸 Установка:
🔸 Взаимодействие с бета-функциями: есть раздел, как работать с бетами (например,
🔸 Необходимо настроить корректно: ключ API, таймауты, повторные попытки — всё описано в README.
🔸 Библиотека выглядит стабильной, но как и с любым SDK для LLM/AI-API — важно тестировать на продакшене с учётом лимитов, ошибок сети и стоимости токенов.
🔗 Github
🐸 Библиотека пхпшника
#инструменты
🧱 Что это такое
Поддерживает полный 1-к-1 функционал официальной Python-библиотеки: работа с «Messages», «Files», «Batches», «Models».
Код соответствует стандартам PSR-12 + использует PSR-11 (внедрение зависимостей) — значит, хорошо ложится в современные PHP-фреймворки.
Фреймворк-независим: можно использовать в Laravel, Symfony, Slim и других.
✅ Что умеет
Поддержка моделей: Claude Sonnet 4.5, Haiku 4.5, Opus 4.1.
Расширенные функции: vision (анализ изображений), стриминг, batch-обработка, embeddings, tool-use (инструменты) и «extended thinking».
Асинхронная готовность с поддержкой Amphp.
Большое количество примеров: более 80 файлов, >11 000 строк покрывают документацию Claude-API.
⚠️ На что обратить внимание
🔸 Установка:
composer require claude-php/claude-php-sdk.🔸 Взаимодействие с бета-функциями: есть раздел, как работать с бетами (например,
output_format, beta() namespace) — важно при использовании новых возможностей.🔸 Необходимо настроить корректно: ключ API, таймауты, повторные попытки — всё описано в README.
🔸 Библиотека выглядит стабильной, но как и с любым SDK для LLM/AI-API — важно тестировать на продакшене с учётом лимитов, ошибок сети и стоимости токенов.
#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM