Обновить
45.98

PHP *

Скриптовый язык общего назначения

Сначала показывать
Порог рейтинга
Уровень сложности

Федеративная архитектура дилерских сайтов: Bitrix, Manticore Search и OpenAI Batch API для каталога на 50k SKU

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели4.3K

Когда производитель с дилерской сетью из 85+ партнёров решает стандартизировать их сайты — первый инстинкт понятен: сделать JSON-фид с основного домена, настроить синхронизацию, и пусть у всех будет одинаковый актуальный каталог.

Проблема в том, что «одинаковый» и «хорошо индексируемый» — противоречащие друг другу требования, если реализовано наивно. Яндекс видит 85 сайтов с идентичным контентом и поступает предсказуемо.

Под катом — как мы решали эту задачу для крупнейшего производителя сельхозтехники в России (150+ моделей комбайнов и тракторов, 50 000 SKU запчастей): архитектура Lock/Edit на уровне инфоблоков Битрикс, Manticore Search для артикулов со спецсимволами, OpenAI Batch API для обогащения каталога и Python-автоматизация развёртывания 85 поддоменов.

Читать далее

Новости

Один для многих — как мы написали универсальный грид для портала на Битриксе

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели4.5K

Работая над корпоративным порталом большого предприятия, рано или поздно оказываешься лицом к лицу с типовыми проблемами работы с таблицами: данных много, требования к интерактивности и настройкам — ещё больше, а бизнес не хочет ждать «когда всё подгрузится». Мы вырастили свой универсальный компонент для работы с гридами — и теперь можем честно поделиться: как минимизировать боли, не разрабатывать раз за разом один и тот же функционал в разных сервисах и сделать жизнь разработчика проще.

Читать далее

Интеграция 40+ дилеров через REST API: как мы построили портал запчастей крупнейшего сельхозпроизводителя в России

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.4K

Про эталонный справочник, JWT-авторизацию, требования КИИ и почему 1С-Битрикс вместо Laravel

В 2022 году мы получили задачу: автоматизировать заказы запчастей для 40+ дилеров. Вызов был не в объёме данных (50,000 SKU), а в разнородности систем дилеров и требованиях безопасности КИИ.

Через 18 месяцев 65% заказов пошли через портал без участия операторов. REST API интегрирован с 28 дилерами (70% сети). Время оформления заказа сократилось с 45 минут до 7.

Под катом — архитектурные решения, почему эталонный справочник важнее REST API, и как обойти ограничения КИИ.

Читать далее

WordPress с OpenLiteSpeed vs классический LEMP: реальные бенчмарки

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5K

Мы сравнили OpenLiteSpeed и классический LEMP для WordPress на реальных серверах. RPS, latency, TTFB, потребление CPU и RAM, поведение под нагрузкой до 500 пользователей. И вот какие итоги у нас получились.

Читать далее

Как в PHP узнать определенна ли переменная (для версии PHP 7.4 и выше)

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели11K

Шлифуя код своего пакета PHP MultiRunner с помощью статических анализаторов кода psalm и phpstan, столкнулся с интересной загадкой — а как в PHP узнать определена ли переменная или нет.

Казалось бы, есть хорошая функция (языковая конструкция) isset(mixed $var, ...$vars): bool. Но в ней есть подвох: если переменная определена значением null, то isset() вернёт для неё false.

Читать далее

Инвертирование равенства. Как реже стрелять себе в ногу в C-подобных языках

Время на прочтение7 мин
Охват и читатели6.8K

Встав утром и посмотрев в профиль, отметил: на Хабре много лет, писал статьи, писал код. И ни разу не писал о коде на Хабре. А вообще‑то разработчик. Поззорище! Пора исправляться.

Поговорим о классической (и болезненной) проблеме кодирования «присваивание вместо равенства» которая в любой момент может создать очень много проблем. О логическом источнике этой ошибке, и о способах решения.

Ну и ещё слегка вспомним «Звездные войны»:-)

Силу инверсии равенства познай на себе :)

AI для PHP-разработчиков. Часть 2: практическое использование TransformersPHP

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели11K

AI в PHP: не теория, а место, с которого можно начать

В своей прошлой статье я описал на довольно общем уровне почему тема AI вроде бы везде, но при этом почти не пересекается с повседневной PHP-разработкой. Не потому что PHP "не подходит", а потому что сам разговор обычно идёт мимо наших задач и привычного способа мышления. Ну и, конечно, о том, что почти нет материала, который объясняет AI именно для PHP-разработчиков, их задач и их мышления.

После публикации мне несколько раз задали один и тот же вопрос, в разных формулировках:

Окей, допустим. А с чего конкретно начать?

И это, пожалуй, самый интересный вопрос из тех, что я получил. Ниже я попытаюсь дать на него ответ.

Читать далее

Мультиагентная разработка: от хотелок до продакшена

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели12K

Мультиагентная разработка — это возможность превратить работу с AI из «вайб‑кодинга» в управляемый конвейер: от хотелок до тестов и документации.

В статье я покажу свой «велосипед»: набор специализированных агентов (PO/BA/SA/архитектор/разработчик/тестировщик/техпис) и оркестратор, который гоняет их по пайплайну с изоляцией контекста.

Читать далее

Статанализ — must-have для проектов с Codex/ClaudeCode

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели8.3K

На днях у Кирилла Мокевнина вышел пост про то, как он разлюбил динамическую типизацию. Мысль понятная: на больших кодовых базах отсутствие типов начинает дорого стоить.

Хочу дополнить аргументом, который в 2026 году уже стал прям must-have: статанализ и типы — это лучший self-check для AI-агента.

Современные агенты для разработки (Claude Code на Opus 4.5 и ChatGPT Codex 5.2 High) хорошо пишут код. Ошибок уровня «переменная не объявлена», «импорт забыл», «опечатка в имени метода» по сути уже почти нет. 

Основные промахи чаще про другое:

Читать далее

Адрес без координат — деньги на ветер: внутренняя кухня Address в Bitrix24

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.3K

При работе с Bitrix24 понадобилось сохранить адрес из Google Maps в стандартное поле Address у лида. Не просто строку, а полноценный адрес: с координатами, разбивкой на части и корректной работой всей CRM-логики.

REST API рассматривался первым, но быстро стало ясно, что в этом сценарии неудобен. Нужно было переносить адрес между сущностями Bitrix24, сохраняя связи с модулем location. REST такого контроля не даёт.

При этом в Bitrix24 уже есть стандартное поле address, связанное с Google Maps и модулем location. Оно умеет хранить координаты и структуру адреса, но в документации нет описания, как правильно заполнять его через код.

В статье разберу практический кейс: как сохранить адрес из Google Geocode во внутренние сущности Bitrix24 без REST API и без пользовательского интерфейса.

Читать далее

[Laravel-Telegram] Пример сервиса на Laravel для авторизации пользователя через Telegram в mini-app

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6.2K

Авторизация пользователя в Telegram mini-app сейчас как никогда важна. Но что если вам необходимо сделать это в вашей сервисной/микросервисной архитектуре с отправкой смс-кода?

Читать далее

PHP HTML Cleaner: история разработки и обзор Composer-пакета для очистки HTML

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели7.9K

Сегодня я хочу рассказать вам о тот как небольшая задача привела меня к созданию своего первого Composer пакета (ну да, логично, тайтл статьи именно такой :D).

И так, у клиента из 1С, в реквизитах товара, прилетает превью описание такого вида...

Читать далее

Laravel Monitor: мониторинг здоровья вашего Laravel-приложения

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.4K

Laravel Pulse — это пакет для Laravel, который позволяет отслеживать состояние различных компонентов вашего приложения: базы данных, Redis, файловых хранилищ, Horizon, Node.js окружения и даже проверять безопасность зависимостей через Security Checker.

https://gitflic.ru/project/adb/laravel-pulse

В современной разработке критически важно отслеживать состояние всех компонентов приложения. Особенно это актуально для production-окружений, где каждая минута простоя может стоить денег и репутации. Сегодня я хочу рассказать о пакете Laravel Pulse — инструменте для комплексного мониторинга здоровья Laravel-приложений.

Пакет предоставляет:

✅ Команду Artisan для проверки всех компонентов
✅ REST API для получения данных о состоянии системы
✅ Возможность сохранения результатов в базу данных
✅ Интеграцию с системами мониторинга (Zabbix, Nagios и т.д.)

Читать далее

Ближайшие события

Админ vs студент: разбор тестового задания — сервис консультаций на Laravel за неделю

Уровень сложностиСредний
Время на прочтение30 мин
Охват и читатели14K

Эта статья — подробный разбор тестового задания на позицию PHP-разработчика, которое мне пришлось выполнить в краткие сроки из-за приближающей сессии. Я расскажу, с какими трудностями столкнулся, будучи студентом и новичком в веб-разработке, как построил архитектуру проекта «Школьные консультации» и что из этого вышло. Если вам интересен взгляд «с первоначального этапа» на классическую задачу или вы хотите узнать, чем всё кончилось, или у вас был похожий опыт (о котором вы хотели рассказать), то добро пожаловать.

Читать далее

Как я победил «дрейф контрактов» между бэкендом и тремя клиентами: OpenAPI → SDK → Zod

Время на прочтение9 мин
Охват и читатели7.3K

Когда у тебя несколько клиентов (web + расширение + десктоп), API быстро развивается, а данных много и они сложные — «контракт» между бэком и фронтом начинает дрейфовать.
Я решил это так:

Читать далее

AI для PHP-разработчиков. Часть 1: практика без Python и data science

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

Про AI сейчас пишут много, мягко говоря. Причём пишут буквально все, кому не лень. Но если вы PHP-разработчик, то, скорее всего, ощущение примерно такое: тема вроде бы важная, но почти всё – не для вас, а двигаться в эту сторону нужно, ибо... ну, вы и сами понимаете.

Большинство материалов сразу уезжают в Python, Jupyter, PyTorch, обучение моделей, математику и датасеты. Даже когда речь идёт не про data science, а про практику – примеры всё равно из другого мира.

Я с этим столкнулся довольно давно, когда попытался понять, как вообще можно использовать AI в обычной PHP-разработке. После нескольких практических кейсов в своих проектах у меня сложилось своё понимание ситуации. Да, я понимаю, что Python сегодня де-факто стандарт в мире машинного обучения, но есть огромное количество ситуаций, когда можно использовать AI или ML из PHP без Python-стека, а кроме того мне, как PHP-разработчику, хочется самому разбираться в теме, а не просто научиться делать API-запросы к OpenAI.

Читать далее

Joomla-дайджест. 2-е полугодие 2025 года

Время на прочтение30 мин
Охват и читатели11K

Все главные новости из мира Joomla с июля по декабрь 2025 года в одной статье. Я честно пытался напрячь самые разные ИИ сортировкой постов по смыслу и, к сожалению, ни один из них не справился с этой задачей так, как нужно мне. Поэтому, напрягая собственный интеллект, представляю читателю наш дайджест, который обозревает новости, расширения, шаблоны и статьи из мира Joomla. Прошлый выпуск вы можете прочитать здесь.

Читать далее

Yii3. Официальный релиз

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели26K

Это случилось! PHP-фреймворк Yii3 официально выпущен после многих лет интенсивной разработки и полировки.

Мы кратко рассмотрим основные моменты этого долгожданного релиза.

Читать далее

MoonShine 4: AI-инструменты, Tailwind 4 и новый UI — большой разбор релиза open source админ панели

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели10K

Tailwind 4, дизайн-токены, AI-генерация через Claude Code, Telegram Mini App, модульная архитектура CRUD, 20+ палитр из коробки и генератор собственных. MoonShine 4 большое обновление админ панели для проектов на Laravel и других фреймворках. Вместо часов настройки полей — один промпт. Вместо танцев с CSS — система дизайн-токенов. Вместо мобильного приложения — интеграция с Telegram. За 11 месяцев разработки мы переосмыслили то, как должна создаваться админ-панель в 2025 году. Внутри — полный технический разбор.

Читать далее

Хуки свойств в PHP: геттеры и сеттеры не нужны

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

В версии 8.4 наконец‑то появилась одна из тех фич, о которых давно мечтали многие, — хуки свойств. Что это такое? По сути, это встроенные механизмы get/set для свойств объектов, которые позволяют добавить свою логику при чтении или записи значения прямо внутри определения свойства. Никаких больше громоздких геттеров и сеттеров, никаких загадочных get и set, теперь всё можно сделать красиво и понятно на уровне самих свойств.

Читать далее
1
23 ...