Обновить
89.52

PHP *

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

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

Как интегрировать Kafka Apache с CRM Битрикс24

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров654

Всем привет! Меня зовут Перебиковский Ярослав и это моя первая статья для Хабр.

Я ведущий разработчик компании «Эм Си Арт» — интегратора Битрикс24. Мы давние партнеры Битрикс24 и у нас в арсенале есть множество кастомных и, что важнее, интересных решений. Одним из них хотелось бы поделиться — расскажу о нем в разрезе пользователя, разработчика, архитектуры и опишу использованные подходы.

У одного из наших клиентов возникла нетривиальная задача — интегрировать CRM Битрикс24 с сайтом, написанным на Go. В качестве брокера сообщений клиент использовал Kafka - как самый устойчивый к нагрузкам и подходящий по ряду других параметров. Но оказалось, что готовых решений для интеграции с этим стеком технологий не было ни у нас, ни на рынке вообще. Поэтому решили написать собственный модуль с нуля.

Читать далее

Как мы снизили время отклика в 15 раз на новом портале ВДНХ через Laravel + Nuxt и масштабируемую архитектуру

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

Привет! Я Алексей Постригайло, старший партнер крупного ИТ-интегратора.

В этой статье я расскажу о технических деталях масштабной работы, которая была проделана перед тем, как новый сайт ВДНХ объединил все проекты выставки на одной платформе.

Читать далее

Ленивые вычисления в PHP: как генераторы и итераторы экономят память и ускоряют код

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

Как обрабатывать миллионы строк в PHP и не убить память?

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

Читать далее

Мониторинг и анализ производительности бэкенда с помощью ClickHouse и Grafana. Часть 1

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

Всех приветствую! Я Артём Седых, ведущий разработчик команды банковского сопровождения. Нашему cервису уже 8 лет, 16 разработчиков, бэкенд - монолит на PHP. В данном наборе статей расскажу про наш опыт разработки альтернативы pinba и внедрения гибкой системы мониторинга бэкенда в легаси проекте с возможностью увидеть всю систему как на ладони и понять, почему именно проседают определенные экшены. Узнать о замедлении работы не в письмах и звонках от пользователей, а автоматически и прозрачно. На конкретных примерах дашбордов графаны покажу как обнаружить типичные проблемы экшенов, запланировать оптимизацию и даже предсказать снижение производительности.

Читать далее

PHP и Laravel дайджест новостей за июль 2025 года

Время на прочтение7 мин
Количество просмотров2.3K

Привет, Хабр!

Сергей Пантелеев и Данил Щуцкий собрали ключевые новости PHP и Laravel за июль. Будьте в тренде — читайте обзор! 🚀

Читать далее

Joomla исполнилось 20 лет. Поздравления с юбилеем от сообщества

Время на прочтение7 мин
Количество просмотров1.4K

17 августа 2025 года Joomla исполнилось 20 лет! Для мира IT-технологий это внушительный возраст. CMS проделала большой путь, выросла и стала совершеннолетней. К юбилею возникла идея сделать серию интервью (и небольшой флешмоб) с видными участниками русскоязычного сообщества Joomla: теми, кто когда-то был активным и сделал большой вклад в развитие Joomla и теми, кто делает это сейчас.

Joomla 20 лет!

Разработка Битрикс-бота: история о том, как документация врала, а облака смеялись

Время на прочтение9 мин
Количество просмотров2.1K

Привет, Хабр! (И тебе, случайный читатель, который зашёл сюда просто потому, что заскучал в корпоративном чате.)

Сегодня я расскажу вам историю о том, какая задача посетила меня на этот раз и как я сделал «корпоративного бота с возможностью оценки сотрудников» — казалось бы, простая задача, но…

Читать далее

Глаза Битрикса боятся, а руки делают — как кастомизировать сделки с нуля

Время на прочтение12 мин
Количество просмотров1.7K

Всем привет, я Сергей — ведущий программист в e-commerce агентстве KISLOROD.

Битрикс24 можно доработать «под себя», но если задачи сложные — без модулей вы далеко не уедете. Модули позволяют объединить доработки в один понятный, управляемый блок. Это удобно как для команды разработки, так и для поддержки в будущем. Погнали разбираться!

Читать далее

Joomla-дайджест. 2-й квартал 2025 года

Время на прочтение18 мин
Количество просмотров945

С небольшим запозданием, но всё же читайте все главные новости из мира Joomla с апреля по июнь 2025 года в одной статье. Традиционно наш дайджест обозревает новости, расширения, шаблоны и статьи из мира Joomla. Прошлый выпуск вы можете прочитать здесь.

Читать далее

Рассылка на миллион: как CDP от БизнесПрофи на базе Битрикс24 помогает оперировать реально огромными базами контактов

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров501

Привет! Меня зовут Анна Амирова, я из  digital-интегратора БизнесПрофи — мы внедряем и сопровождаем Битрикс24, а еще разработали на базе CRM Б24 полноценную CDP (Customer Data Platform) для работы с большими клиентскими базами, содержащими миллионы записей. 

Решение создавалось последовательно, исходя из запросов клиентов на решение различных задач от A/B тестирования до аналитики. Основной целью было избавить пользователей от зоопарка систем, который обычно используется для рассылок — рассылки через почтовые сервисы, через Whatsapp, Телеграм, подключение ботов и т.д. Часто случалось, что только маркетолог держал у себя в голове количество реальных касаний с клиентом, а работа по сегментации базы и управлению рассылками велась без всякой системы. В этом случае есть риск перегреть базу контактов, при том, что ценность ее очень велика. 

В первой части статьи расскажем о подходах к сегментированию клиентов и их практической реализации в связке с инструментами Битрикс24. 

Модуль CDP является неотъемлемой частью Битрикс24 и позволяет использовать продукт комплексно, как связку для взаимодействия отдела продаж и отдела маркетинга. В некоторых проектах используется именно, как инструмент маркетолога, если компания не использует в операционной деятельности CRM, ввиду организационных особенностей. Мы настраиваем синхронизацию с внешними базами данных, 1С и другими продуктами. 

CDP позволяет сегментировать клиентов по всевозможным доступным критериям, например, выделить покупателей, которые в последний раз делали заказ в определенной категории товаров более месяца назад. Также система умеет создавать аналитические сегменты, сегменты по k-средним, проводит RFM-анализ. Система позволяет строить сегменты как по компаниям, так и по контактам. 

Читать далее

Сбор и масштабирование метрик в PHP Symfony highload: 200k RPM, 50+ серверов и zero overhead с Telegraf UDP

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

«Redis умирает на 200k RPM, Prometheus не успевает скрейпить 50 серверов, а бизнес требует real-time дашборды. Знакомо?»

Пятница, 18:00. Дашборд в Grafana показывает timeout'ы при сборе метрик. Redis, который хранит данные для prometheus_client_php, жрёт 8GB памяти и 100% CPU. Prometheus не успевает опросить все 50+ серверов за отведённые 15 секунд. А в понедельник запускается Black Friday...

Эта статья — о том, как мы перешли с pull на push модель для мониторинга PHP-приложения в highload, почему выбрали UDP + Telegraf вместо классического подхода, и как теперь собираем метрики PHP с 50+ серверов без единого timeout'а.

Читать далее

Duyler — Событийно-ориентированный, неблокирующий PHP-фреймворк

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров1.4K

В данной статье, я хотел бы рассказать вам о Duyler (производное от Do While) - событийно-ориентированном, «неумирающем» и неблокирующем PHP-фреймворке.

Читать далее

Создаем свой пакет на PHP

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

Хочу поделиться с вами своим опытом, с которым столкнулся, и предоставить шаблон, который написал для пакетов/проектов:
https://github.com/deniskorbakov/skeleton-php-docker

Буду очень рад звёздочке на GitHub и обратной связи после прочтения статьи!

Читать далее

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

Laravel + Admiral: как не тратить полжизни на авторизацию

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.1K

Если ты в 2025 году ты всё ещё руками собираешь авторизацию на Laravel для своей админки — у меня для тебя плохие новости. Ты либо получаешь удовольствие от страданий, либо просто не знаешь про Admiral. А хорошие новости заключается в том, что это open source фреймворк, который не позволяет не сойти с ума копипаста и рутинной хрени. Вместо этого он делает всё за тебя (что? да!). Ты просто поставишь, настроишь пару штук — и вуаля: авторизация, фронт, работающий бекенд.

В этом гайде я покажу, как без боли и слёз запустить связку Laravel + Admiral с полной авторизацией. Ни строчки лишнего кода, и ни минуты на сомнительные патчи.

Что там еще...

HTMX, AlpineJS, SSR v1/2/3 и SPA. Что к чему

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

HTMX и AlpineJS это две JS библиотеки, которые расширяют HTML специальными аттрибутами и позволяют писать фронтенд без SPA фреймворков.

Это альтернативы React/Vue/Angular и иже с ними. Их появление вызвано усталостью от сложной JS экосистемы и тоской по временам, когда задачи решались с помощью PHP и jQuery.

Я всю жизнь писал JSON API и SPA интерфейсы и моему мозгу трудно было переварить, зачем нужны эти библиотеки и как с ними работать. Поэтому я написал эту статью.

Читать далее

Нужно ли в PHP перед вызовом функций ставить обратный слэш?

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

Несколько лет назад я прочитал статью «How to dump and inspect PHP OPCodes» в которой наконец увидел, что опкоды в PHP действительно существуют. И кроме того, мы, разработчики, которые пишем на PHP на эти опкоды можем влиять, тем самым оптимизируя производительность нашего кода. В статье так же рассказывалось о том, как применение бэкслэшей может ускорить выполнение программ. Я был под впечатлением...

Опкодами (см. Код операции) называется некий промежуточный код, который всё ещё понятен человеку и который выполняется некой исполняющей средой. В случае PHP этой средой является Zend Virtual Machine (она же Zend Engine).

Технология опкодов и виртуальной машины не является чем то уникальным для PHP. Подобный подход использует Java, где опкоды компилируются в их бинарное представление и выполняются Java VM. Исходные коды Java-программ хранятся в файлах с расширением .class (потому что в Java искодники хранятся только в виде классов), а скомпилированные опкоды в файлах с расширением .java. В PHP же исходные коды программ хранятся в файлах с расширением .php. А вот опкоды не хранятся нигде, что вызвало к жизни многочисленные расширения, самым популярным из которых на сегодняшний день является OPcache.

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

Оговорюсь, что в рамках этой статьи я буду называть функции типа explode глобальными, дефолтыми или стандартными подразумевая одно и тоже. Хотя у PHP и есть стандартная библиотека, которая скорее мертва, чем жива, как впрочем и весь PHP :)

Читать далее

Финансовый учет: адаптация приложения для коробочного «Битрикс24»

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров472

Некоторое время назад нами был разработано и опубликовано приложение Финансовый учет для облачного «Битрикс24». В этом материале мы хотим поделиться как мы занимались портированием его на коробку «Битрикса», почему так решили делать и с какими сложностями столкнулись.

Читать далее

Рефакторинг системы рекомендаций: как мы перешли с монолита на микросервисы

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров6.9K

Привет, я разработчик программного обеспечения в компании 1221Systems и хочу рассказать об опыте перевода проекта с монолитной архитектуры на микросервисную: как выглядел исходный проект и с какими проблемами мы столкнулись, какую архитектуру построили после рефакторинга и какие преимущества в итоге получили.

Что у нас было

Проект состоял из двух частей.

Читать далее

PHP Compile Time Generics: да или нет?

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров3.4K

Это небольшой разбор поста от PHP Foundation: Compile time generics: yay or nay?, пропитанный личным мнением.

Читать далее

Путь из продактов в прогеры: выясняю, почему кодеры «гады» такие, делают только баги и плохо соблюдают сроки

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

Путь из продактов в прогеры: выясняю, почему кодеры "гады" такие, делают только баги и плохо соблюдают сроки

Статья будет полезна для тех, кто менторит стажеров/джунов-программистов, и для самих смельчаков-новичков в этом нелегком деле.

Читать далее