Обновить
41.98

PHP *

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

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

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

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

При работе с 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 мин
Охват и читатели5.7K

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

Читать далее

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

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

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

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

Читать далее

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

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

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.1K

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели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 мин
Охват и читатели25K

Это случилось! 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, теперь всё можно сделать красиво и понятно на уровне самих свойств.

Читать далее

Как я ускорил установку PHP-зависимостей в 5 раз с помощью Go

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

TL;DR

Переписал Composer на Go, получил 3-5x ускорение благодаря параллельной загрузке пакетов и отсутствию PHP runtime overhead. Проект полностью совместим с экосистемой Composer/Packagist (почти, об этом будет подробнее внизу).

Читать далее

Роутинг в BitrixFramework: учимся управлять маршрутизацией запросов

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

Всем привет! У большинства фреймворков, построенных на паттерне MVC, отсутствуют физические страницы, содержащие в себе логику обработки и детали отображения страницы. Все это держится на плечах контроллера, а роутинг уже сопоставляет используемый URL и необходимый экшен контроллера. Считается, что использование физических страниц для отображения контента — по большой части прерогатива CMS, но на самом деле это заблуждение. В данной статье рассмотрим механику работы роутинга в Битрикс.

Читать далее

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

Обнови ICU в PHP 7.3 intl на Centos 7, если осмелишься

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

Надеюсь, этот материал вам никогда не понадобится. А если понадобится, то вы уже преисполнились проблемой и полны решимости ее исправить!

Вкратце, новые таймзоны не распознаются старыми библиотеками, а это чревато ошибками и неожиданностями.

Я джва года ждал!

Структура кода в папке Domain по DDD

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

В слое Domain 90% проектов с тактическим DDD забыли о самом главном. Сегодня мы вспомним то о чем забыли или узнаем то чего не знали.

Читать далее

SwooleApp: Легковесный фреймворк для Swoole — разбираем пример приложения

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

Недавнооткрыл миру SwooleApp — минималистичного фреймворка для PHP, построенного на базе Swoole. Если вы уже работали с Swoole напрямую, то знаете, что это мощный инструмент для создания высокопроизводительных приложений, но иногда хочется иметь чуть больше структуры и удобства, чем предлагает чистый Swoole. Именно эту нишу и занимает SwooleApp.

В этой статье я кратко расскажу, что это за проект, как его использовать, и поделюсь ссылкой на рабочий пример приложения, который можно запустить в Docker за несколько минут.

Читать далее

Не используйте pipe operator в PHP 8.5, пока не узнали все нюансы

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

В версии PHP 8.5 появился оператор |> — так называемый pipe operator. Он давно используется в других языках (F#, Elixir, OCaml) и активно применяется в JavaScript. Его основная цель — упростить передачу результата одной операции в следующую, делая код более читаемым и линейным.

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

Читать далее

Создаём шахматы с «туманом войны» на JavaScript: от идеи до работающего прототипа

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

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

И тут я вспомнил о своей идее сделать сайт для консольной реализации шахмат на Python. Это была сухая игра, написанная на Pygame для двоих программистов, но не для людей, так как её нельзя было запустить на других устройствах. И у меня родилась идея: а что, если превратить этот скелет игры в веб-приложение на JS?

Из минусов было только то, что моя игра написана на языке Python, а для работы мне нужен JavaScript, и я решил, что это не проблема, и начал переписывать готовую логику на новый язык, параллельно добавляя новые функции.

Идея зацепила сразу, представьте: вы переносите свой проверенный, рабочий кейс, у которого вся шахматная логика (проверка ходов, матов и пат) уже работает и ничего нового придумывать не надо, нужно только сделать интерфейс для браузера и все новые идеи (например, таймер).

Читать далее

CLI-инструменты в Битрикс: используем консоль вместо ручек

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

Всем привет! CLI-инструменты являются неотъемлемой частью любого PHP-фреймворка, они удобны для выполнения службных операций. В данной статье поговорим о том, какой инструментарий предоставляет нам Битрикс для разработки и обслуживания сайтов.

Читать далее

Пишем HTTP-сервер на php и сокетах

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

Разбираем протокол http, создание базового http-сервера на php с использованием сокетов, обработкой запросов и формированием ответов.

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