Media is too big
VIEW IN TELEGRAM
BITRIX24-PHP-EXAMPLES-08
tl;dr;
— работа с batch-запросами
— CLI приложения на symfony console
— обработка сигналов POSIX
📺 https://youtu.be/Lg-FITVElNc
tl;dr;
— работа с batch-запросами
— CLI приложения на symfony console
— обработка сигналов POSIX
📺 https://youtu.be/Lg-FITVElNc
2👍1
🚀 1.5.0 – 2025.08.01
Added
- service Services\Entity\Section\Service\Section with support methods,
see [crm.entity.section.* methods](https://github.com/bitrix24/b24phpsdk/issues/200):
- service Services\Entity\Item\Property\Service\Property with support methods:
- service Services\Department\Service\Department with support methods,
see [department.* methods](https://github.com/bitrix24/b24phpsdk/issues/204):
- service CRM\Requisites\Service\RequisiteUserfield with support methods,
see [add crm.requisite.userfield.* methods](https://github.com/bitrix24/b24phpsdk/issues/188):
- service CRM\Requisites\Service\RequisiteBankdetail with support methods:
- service CRM\Requisites\Service\RequisiteLink with support methods:
- service CRM\Requisites\Service\RequisitePresetField with support methods:
- service Services\CRM\Status\Service\Status with support methods,
see [crm.status.* methods](https://github.com/bitrix24/b24phpsdk/issues/194):
- service Services\CRM\Status\Service\StatusEntity
- service Services\CRM\Timeline\Service\Comment with support methods,
see [crm.timeline.comment.* methods](https://github.com/bitrix24/b24phpsdk/issues/196):
- Added support for events:
- OnCrmTimelineCommentAdd
- OnCrmTimelineCommentDelete
- OnCrmTimelineCommentUpdate
- service Services\CRM\Timeline\Service\Bindings
- service Services\CRM\Item\Productrow\Service\Productrow with support methods,
see [crm.item.productrow.* methods](https://github.com/bitrix24/b24phpsdk/issues/198)
Fixed
- Fixed typehints in Contact batch for method add, [see details](https://github.com/bitrix24/b24phpsdk/issues/202)
Changed
- Fixed constructor arguments in tests ApplicationInstallations [see details](https://github.com/bitrix24/b24phpsdk/issues/191)
- Bump giggsey/libphonenumber-for-php version to ^8|^9
Statistics
Bitrix24 API-methods count: 1166
Supported in bitrix24-php-sdk methods count: 362
Coverage percentage: 31.05%
https://github.com/bitrix24/b24phpsdk/releases/tag/1.5.0
Added
- service Services\Entity\Section\Service\Section with support methods,
see [crm.entity.section.* methods](https://github.com/bitrix24/b24phpsdk/issues/200):
- service Services\Entity\Item\Property\Service\Property with support methods:
- service Services\Department\Service\Department with support methods,
see [department.* methods](https://github.com/bitrix24/b24phpsdk/issues/204):
- service CRM\Requisites\Service\RequisiteUserfield with support methods,
see [add crm.requisite.userfield.* methods](https://github.com/bitrix24/b24phpsdk/issues/188):
- service CRM\Requisites\Service\RequisiteBankdetail with support methods:
- service CRM\Requisites\Service\RequisiteLink with support methods:
- service CRM\Requisites\Service\RequisitePresetField with support methods:
- service Services\CRM\Status\Service\Status with support methods,
see [crm.status.* methods](https://github.com/bitrix24/b24phpsdk/issues/194):
- service Services\CRM\Status\Service\StatusEntity
- service Services\CRM\Timeline\Service\Comment with support methods,
see [crm.timeline.comment.* methods](https://github.com/bitrix24/b24phpsdk/issues/196):
- Added support for events:
- OnCrmTimelineCommentAdd
- OnCrmTimelineCommentDelete
- OnCrmTimelineCommentUpdate
- service Services\CRM\Timeline\Service\Bindings
- service Services\CRM\Item\Productrow\Service\Productrow with support methods,
see [crm.item.productrow.* methods](https://github.com/bitrix24/b24phpsdk/issues/198)
Fixed
- Fixed typehints in Contact batch for method add, [see details](https://github.com/bitrix24/b24phpsdk/issues/202)
Changed
- Fixed constructor arguments in tests ApplicationInstallations [see details](https://github.com/bitrix24/b24phpsdk/issues/191)
- Bump giggsey/libphonenumber-for-php version to ^8|^9
Statistics
Bitrix24 API-methods count: 1166
Supported in bitrix24-php-sdk methods count: 362
Coverage percentage: 31.05%
https://github.com/bitrix24/b24phpsdk/releases/tag/1.5.0
GitHub
[Feature in SDK]: Add scope entity · Issue #200 · bitrix24/b24phpsdk
Description Add support for Sections entity.section.get entity.section.add entity.section.update entity.section.delete Item Properties entity.item.property.get entity.item.property.add entity.item....
Привет, текущее положение дел по шаблонам приложений
1. Самый нижний слой — SDK
https://github.com/bitrix24/b24phpsdk — плановые релизы раз в месяц по расширению функционала библиотеки.
2. Слой хранения данных — фреймворк-агностик (не зависящий) от фреймворка
https://github.com/mesilov/bitrix24-php-lib/
Тут созданы две сущности отвечающие контрактам из b24phpsdk:
Bitrix24Accounts — храним токены и вот это все связанное с их жизненным циклом
ApplicationInstallations — храним факты установок \ удаления приложения и его жизненного цикла
Т.е. это тот самый минимум, который надо для запуска:
- локального приложения
- тиражного приложения
На этой неделе закончим причесывать до первого релиза 0.x
Т.к. тут уже вариативность существенно больше, то пилим с двумя другими разработчиками, MIT вот это все.
Если прям придерживаться symfony \ laravel way, то там надо делать Symfony‑bundle и Laravel‑adapter, там есть выбор, чтобы это было в одном репе или несколькро репов.
Сейчас, если разработчик на Symfony \ laravel захочет использовать bitrix24-php-lib, то ему придется руками все что надо сконфигурировать у себя (пока нет бандла \ адаптера). Есть такие?
На текущий момент мне гораздо важнее проверить работу всех пользовательских сценариев, поэтому тут пока работы поставил на паузу, делаются только мелки вещи вроде поправить тесты, исправить очевидные косяки и т.д.
3. Шаблоны репозиториев на Symfony \ Laravel
Основная точка приложения усилий, сейчас собираю шаблон симфони, чтобы проверить сценарии которые реализует bitrix24-php-lib и то насколько безболезненно можно все в кучу собрать.
https://github.com/mesilov/bitrix24-application-symfony-template — работы тут
Как только отлажу на симфони сценарии (установка, удаление, очереди и т.д), то можно будет сделать бандл \ и адаптер для Laravel.
Такие вот дела.
1. Самый нижний слой — SDK
https://github.com/bitrix24/b24phpsdk — плановые релизы раз в месяц по расширению функционала библиотеки.
2. Слой хранения данных — фреймворк-агностик (не зависящий) от фреймворка
https://github.com/mesilov/bitrix24-php-lib/
Тут созданы две сущности отвечающие контрактам из b24phpsdk:
Bitrix24Accounts — храним токены и вот это все связанное с их жизненным циклом
ApplicationInstallations — храним факты установок \ удаления приложения и его жизненного цикла
Т.е. это тот самый минимум, который надо для запуска:
- локального приложения
- тиражного приложения
На этой неделе закончим причесывать до первого релиза 0.x
Т.к. тут уже вариативность существенно больше, то пилим с двумя другими разработчиками, MIT вот это все.
Если прям придерживаться symfony \ laravel way, то там надо делать Symfony‑bundle и Laravel‑adapter, там есть выбор, чтобы это было в одном репе или несколькро репов.
Сейчас, если разработчик на Symfony \ laravel захочет использовать bitrix24-php-lib, то ему придется руками все что надо сконфигурировать у себя (пока нет бандла \ адаптера). Есть такие?
На текущий момент мне гораздо важнее проверить работу всех пользовательских сценариев, поэтому тут пока работы поставил на паузу, делаются только мелки вещи вроде поправить тесты, исправить очевидные косяки и т.д.
3. Шаблоны репозиториев на Symfony \ Laravel
Основная точка приложения усилий, сейчас собираю шаблон симфони, чтобы проверить сценарии которые реализует bitrix24-php-lib и то насколько безболезненно можно все в кучу собрать.
https://github.com/mesilov/bitrix24-application-symfony-template — работы тут
Как только отлажу на симфони сценарии (установка, удаление, очереди и т.д), то можно будет сделать бандл \ и адаптер для Laravel.
Такие вот дела.
GitHub
GitHub - bitrix24/b24phpsdk: Bitrix24 PHP SDK for REST API
Bitrix24 PHP SDK for REST API. Contribute to bitrix24/b24phpsdk development by creating an account on GitHub.
🔥4👍2
Что по инфраструктуре?
Приложение работает поверх инфраструктуры, нфраструктурной единицей у нас будет докер-контейнер.
Вопрос в том, что будем выбирать в качестве аппликейшн\веб-сервера. Какие у нас варианты:
Встроенный в PHP dev-сервер
Все запускаем на встроенном в PHP дев-сервере, а production конфигурация это не наша головная боль. Крутитесь как хотите.
У всех пользователей начинает болеть голова, а как это вот все запускать и обслуживать.
nginx + phpfpm
Есть миллион рецептов, проверено годами, собрали @ запустили, для production контура каждый самостоятельно решает ряд вопросов: выпуск сертификатов, логи, телеметрия и т.д.
ru и западное комьюнити в целом понимают, что это такое и как настраивать. На уровне шаблонов приложений даем базовую конфигурацию и дальше сами конфигурируйте как хотите.
Отложенная проблема: развитие nginx начиная с 2022 года стагнирует. Приложения для Битрикс24 не упрутся в «архитектурные» ограничения nginx, но вот экосистема не предоставляет удобных решений «из коробки», настраивайте все сами, как лично вам удобно будет ©.
angie
Это форк nginx от русскоязычной части core-команды nginx, развивается более динамично, русскоязычное комьюнити. Если у вас есть «черный пояс по nginx», то это хорошая замена, которая отвечает на значительную часть требований к современному приложению. Если говорим про западное комьюнити, то выбор angie вызовет некоторые вопросики.
Ну и никуда не девается история с long-running режимом работы php, к которому старательно пытается подойти php-комьюнити.
Более детально с tech-drama можно ознакомиться глянув эти доклады:
https://www.youtube.com/watch?v=Qx9BB7w4mt4 — php и angie
https://www.youtube.com/watch?v=QeI5GMP4ukM&t=15s — деды под пиво бухтят и рассказывают закулисную часть истории
frankenphp
Если вы последний год сидели в пещере и пропустили все новости, то у PHP появился свой application-server.
https://thephp.foundation/blog/2025/05/15/frankenphp/
Из минусов: нужно выучить новый «птичьий язык» конфигурации веб-сервера caddy.
Из плюсов:
— аппликейшн-сервер развивают люди, которые знают с какой стороны PHP запрягать — Kévin Dunglas, creator of API Platform and Symfony Core Team member.
— готовые сценарии для наших любимых фреймворков (Symfony, Laravel,БУС)
— комьюнити адаптирует фреймворки\сценарии и всю обвязку под текущий стек, а под условный nginx вы должны будете портировать конфиги сами.
Поэтому, выбираем в качестве application-server frankenphp 🤔 и на нем отлаживаем «production-ready» конфигурацию приложения, заодно посмотрим, как это выглядит в реальности, а не на бодрых докладах инфлюенсеров с ютьюба, у которых все само работает.
Приложение работает поверх инфраструктуры, нфраструктурной единицей у нас будет докер-контейнер.
Вопрос в том, что будем выбирать в качестве аппликейшн\веб-сервера. Какие у нас варианты:
Встроенный в PHP dev-сервер
Все запускаем на встроенном в PHP дев-сервере, а production конфигурация это не наша головная боль. Крутитесь как хотите.
У всех пользователей начинает болеть голова, а как это вот все запускать и обслуживать.
nginx + phpfpm
Есть миллион рецептов, проверено годами, собрали @ запустили, для production контура каждый самостоятельно решает ряд вопросов: выпуск сертификатов, логи, телеметрия и т.д.
ru и западное комьюнити в целом понимают, что это такое и как настраивать. На уровне шаблонов приложений даем базовую конфигурацию и дальше сами конфигурируйте как хотите.
Отложенная проблема: развитие nginx начиная с 2022 года стагнирует. Приложения для Битрикс24 не упрутся в «архитектурные» ограничения nginx, но вот экосистема не предоставляет удобных решений «из коробки», настраивайте все сами, как лично вам удобно будет ©.
angie
Это форк nginx от русскоязычной части core-команды nginx, развивается более динамично, русскоязычное комьюнити. Если у вас есть «черный пояс по nginx», то это хорошая замена, которая отвечает на значительную часть требований к современному приложению. Если говорим про западное комьюнити, то выбор angie вызовет некоторые вопросики.
Ну и никуда не девается история с long-running режимом работы php, к которому старательно пытается подойти php-комьюнити.
Более детально с tech-drama можно ознакомиться глянув эти доклады:
https://www.youtube.com/watch?v=Qx9BB7w4mt4 — php и angie
https://www.youtube.com/watch?v=QeI5GMP4ukM&t=15s — деды под пиво бухтят и рассказывают закулисную часть истории
frankenphp
Если вы последний год сидели в пещере и пропустили все новости, то у PHP появился свой application-server.
https://thephp.foundation/blog/2025/05/15/frankenphp/
Из минусов: нужно выучить новый «птичьий язык» конфигурации веб-сервера caddy.
Из плюсов:
— аппликейшн-сервер развивают люди, которые знают с какой стороны PHP запрягать — Kévin Dunglas, creator of API Platform and Symfony Core Team member.
— готовые сценарии для наших любимых фреймворков (Symfony, Laravel,
— комьюнити адаптирует фреймворки\сценарии и всю обвязку под текущий стек, а под условный nginx вы должны будете портировать конфиги сами.
Поэтому, выбираем в качестве application-server frankenphp 🤔 и на нем отлаживаем «production-ready» конфигурацию приложения, заодно посмотрим, как это выглядит в реальности, а не на бодрых докладах инфлюенсеров с ютьюба, у которых все само работает.
YouTube
PHP-FPM, (g)unicorn, Puma и uWSGI — будут больше не нужны / Валентин Бартенев
Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем Saint HighLoad++ 2026
Подробнее: https://clck.ru/3QZHTb
Июнь, 2026.
Санкт-Петербург, DESIGN DISTRICT DAA in SPB
--------
Крупнейшая профессиональная конференция для разработчиков…
Подробнее: https://clck.ru/3QZHTb
Июнь, 2026.
Санкт-Петербург, DESIGN DISTRICT DAA in SPB
--------
Крупнейшая профессиональная конференция для разработчиков…
🤯1
🚀 1.7.0
Added
- Services\Sale\Delivery\Service\Delivery, see sale.delivery.*
- Services\Sale\DeliveryRequest\Service\DeliveryRequest sale.delivery.request.*
- Services\Sale\DeliveryExtraService\Service\DeliveryExtraService with support methods see sale.delivery.extra.service.*
- Services\Sale\DeliveryHandler\Service\DeliveryHandler see sale.delivery.handler.*
- Services\Disk\Service\Disk see disk service methods
- Services\Disk\Storage\Service\Storage see disk.storage.*
- Services\Disk\Folder\Service\Folder see disk.folder.*
- Services\Disk\File\Service\File see disk.file.*
- Services\CRM\Documentgenerator\Numerator see crm.documentgenerator.numerator.*
- Services\Paysystem\Handler\Service\Handler see pay_system.handler.*
- Services\Paysystem\Service\Paysystem see sale.paysystem.*
- Services\Paysystem\Settings\Service\Settings see sale.paysystem.settings.*
- Services\Sale\Shipment\Service\Shipment see sale.shipment.*
- Services\Sale\ShipmentProperty\Service\ShipmentProperty see sale.shipmentproperty.*
- Services\Sale\ShipmentPropertyValue\Service\ShipmentPropertyValue see sale.shipmentpropertyvalue.*
- Services\Sale\ShipmentItem\Service\ShipmentItem see sale.shipmentitem.*
- Services\Sale\Payment\Service\Payment see sale.payment.*
- Services\Sale\CashboxHandler\Service\CashboxHandler see sale.cashbox.handler.*
- Services\Sale\Cashbox\Service\Cashbox see sale.cashbox.*
- Services\Calendar\Service\Calendar see calendar.*
- Added support for events:
-
-
-
- Services\Calendar\Event\Service\Event see calendar.event.*
- Services\Calendar\Resource\Service\Resource see calendar.resource.*
- Services\Sale\PaymentItemBasket\Service\PaymentItemBasket see sale.paymentitembasket.*
- Services\Sale\PaymentItemShipment\Service\PaymentItemShipment see sale.paymentitemshipment.*
- Services\Sale\PropertyRelation\Service\PropertyRelation sale.propertyRelation.*
Fixed
- Fixed Incorrect data loading in Core\Batch::getTraversableList() with desc sorting by ID
Statistics
See details in https://github.com/bitrix24/b24phpsdk/releases
Added
- Services\Sale\Delivery\Service\Delivery, see sale.delivery.*
- Services\Sale\DeliveryRequest\Service\DeliveryRequest sale.delivery.request.*
- Services\Sale\DeliveryExtraService\Service\DeliveryExtraService with support methods see sale.delivery.extra.service.*
- Services\Sale\DeliveryHandler\Service\DeliveryHandler see sale.delivery.handler.*
- Services\Disk\Service\Disk see disk service methods
- Services\Disk\Storage\Service\Storage see disk.storage.*
- Services\Disk\Folder\Service\Folder see disk.folder.*
- Services\Disk\File\Service\File see disk.file.*
- Services\CRM\Documentgenerator\Numerator see crm.documentgenerator.numerator.*
- Services\Paysystem\Handler\Service\Handler see pay_system.handler.*
- Services\Paysystem\Service\Paysystem see sale.paysystem.*
- Services\Paysystem\Settings\Service\Settings see sale.paysystem.settings.*
- Services\Sale\Shipment\Service\Shipment see sale.shipment.*
- Services\Sale\ShipmentProperty\Service\ShipmentProperty see sale.shipmentproperty.*
- Services\Sale\ShipmentPropertyValue\Service\ShipmentPropertyValue see sale.shipmentpropertyvalue.*
- Services\Sale\ShipmentItem\Service\ShipmentItem see sale.shipmentitem.*
- Services\Sale\Payment\Service\Payment see sale.payment.*
- Services\Sale\CashboxHandler\Service\CashboxHandler see sale.cashbox.handler.*
- Services\Sale\Cashbox\Service\Cashbox see sale.cashbox.*
- Services\Calendar\Service\Calendar see calendar.*
- Added support for events:
-
OnCalendarSectionAdd-
OnCalendarSectionUpdate-
OnCalendarSectionDelete- Services\Calendar\Event\Service\Event see calendar.event.*
- Services\Calendar\Resource\Service\Resource see calendar.resource.*
- Services\Sale\PaymentItemBasket\Service\PaymentItemBasket see sale.paymentitembasket.*
- Services\Sale\PaymentItemShipment\Service\PaymentItemShipment see sale.paymentitemshipment.*
- Services\Sale\PropertyRelation\Service\PropertyRelation sale.propertyRelation.*
Fixed
- Fixed Incorrect data loading in Core\Batch::getTraversableList() with desc sorting by ID
Statistics
Bitrix24 API-methods count: 1162
Supported in bitrix24-php-sdk methods count: 632
Coverage percentage: 54.39% 🚀
See details in https://github.com/bitrix24/b24phpsdk/releases
GitHub
Releases · bitrix24/b24phpsdk
Bitrix24 PHP SDK for REST API. Contribute to bitrix24/b24phpsdk development by creating an account on GitHub.
🔥4
🚀 1.8.0
Added
- Added service
- For
- Added support for events
- Added separated methods
events
- Added comprehensive unit tests for
- Updated
- Added comprehensive unit tests for
- Added comprehensive unit tests for
- Added support for dynamic OAuth server selection based on regional endpoints
- Added comprehensive unit tests for
Changed
- Breaking changes in
-
-
- Replaced
- Updated
- Docker configuration updated to PHP 8.4
- Development environment now uses PHP 8.4.14 (docker/php-cli/Dockerfile):
- PHP 8.4 compatibility improvements:
- OAuth server selection made dynamic:
Fixed
- Fixed wrong offset in
- Fixed wrong exception for method
- Fixed added type
- Fixed errors in
- Breaking change: Fixed method signature
object
- Migration: Replace
- Updated all unit and integration tests to use new signature
- Fixed bug in
- Fixed unit tests in
- Fixed unit tests in
Deprecated
- Method
Statistics
https://github.com/bitrix24/b24phpsdk/releases/tag/1.8.0
Added
- Added service
Services\CRM\Type\Service\Type- For
AbstractCrmItem added method getSmartProcessItem to get smart process item- Added support for events
- Added separated methods
RemoteEventsFactory::create and RemoteEventsFactory::validate for create and validate incomingevents
- Added comprehensive unit tests for
RemoteEventsFactory::create and RemoteEventsFactory::validate methods - Updated
ContactPersonInterface implementation- Added comprehensive unit tests for
UTMs - Added comprehensive unit tests for
UserAgentInfo- Added support for dynamic OAuth server selection based on regional endpoints
- Added comprehensive unit tests for
EndpointsChanged
- Breaking changes in
ContactPersonInterface method signatures:-
changeEmail(?string $email) - removed second parameter ?bool $isEmailVerified. Migration path: call markEmailAsVerified() separately after changeEmail() if email needs to be verified-
changeMobilePhone(?PhoneNumber $phoneNumber) - removed second parameter ?bool $isMobilePhoneVerified. Migration path: call markMobilePhoneAsVerified() separately after changeMobilePhone() if phone needs to be verified- Replaced
getUserAgent(), getUserAgentReferer(), getUserAgentIp() methods with single getUserAgentInfo(): UserAgentInfo method that returns complete user agent information object. Migration path: use $info->userAgent, $info->referrer, $info->ip properties instead- Updated
RemoteEventsFactory::validate() method signature from validate(EventInterface $event, string $applicationToken) tovalidate(Bitrix24AccountInterface $bitrix24Account, EventInterface $event).- Docker configuration updated to PHP 8.4
- Development environment now uses PHP 8.4.14 (docker/php-cli/Dockerfile):
- PHP 8.4 compatibility improvements:
- OAuth server selection made dynamic:
Fixed
- Fixed wrong offset in
ItemsResult- Fixed wrong exception for method
crm.item.get, now it ItemNotFoundException- Fixed added type
project in enum PortalLicenseFamily- Fixed errors in
ContactPersonRepositoryInterfaceTest - Breaking change: Fixed method signature
Credentials::createFromOAuth() - third parameter changed from string $domainUrl to Endpoints $endpointsobject
- Migration: Replace
Credentials::createFromOAuth($authToken, $appProfile, 'https://example.com') with Credentials::createFromOAuth($authToken, $appProfile, new Endpoints('https://example.com', 'https://oauth.bitrix.info/'))- Updated all unit and integration tests to use new signature
- Fixed bug in
Endpoints class constructor - Fixed unit tests in
CredentialsTest.php to properly instantiate Endpoints objects- Fixed unit tests in
CoreTest.php integration test to use Endpoints objectDeprecated
- Method
RemoteEventsFactory::createEvent marked as deprecated, use RemoteEventsFactory::create and RemoteEventsFactory::validate insteadStatistics
Bitrix24 API-methods count: 1162
Supported in bitrix24-php-sdk methods count: 639
Coverage percentage: 54.99% 🚀
Supported in bitrix24-php-sdk methods with batch wrapper count: 91
https://github.com/bitrix24/b24phpsdk/releases/tag/1.8.0
GitHub
Release 1.8.0 · bitrix24/b24phpsdk
Added
Added service Services\CRM\Type\Service\Type with support methods,
see crm.type.* methods:
fields method retrieves information about the custom fields of the smart process settings
add meth...
Added service Services\CRM\Type\Service\Type with support methods,
see crm.type.* methods:
fields method retrieves information about the custom fields of the smart process settings
add meth...
🔥1
Привет, вышел новый релиз 0.3.0 bitrix24-php-lib, это библиотека которая отвечает за работу с ключевыми подсистемами вашего тиражного или локального приложения:
— Bitrix24 accounts ✅ храним авторизационные токены
— Installation facts ✅ храним факты установок и удаления приложений
— ApplicationSettings 🆕🚀 настройки уровня приложения, департамента, пользователя, храним в привязке к installation facts
— ContactPersons ⏳ work in progress кто ставил приложение и как с ним связаться для оказания саппорта
— Bitrix24Partners ⏳ work in progress, кто из партнеров поставил приложение, да, те самые Partners Friendly, спасибо Ивану Санникову @zametki_na_polyah за идею
— Application Journal ⏳work in progress, журнал приложения, содержащий бизнесовые события, ваш саппорт скажет вам спасибо.
Как вы понимаете, основная задача — отдать максимум «типового» функционала в стартер приложения
https://github.com/mesilov/bitrix24-php-lib
— Bitrix24 accounts ✅ храним авторизационные токены
— Installation facts ✅ храним факты установок и удаления приложений
— ApplicationSettings 🆕🚀 настройки уровня приложения, департамента, пользователя, храним в привязке к installation facts
— ContactPersons ⏳ work in progress кто ставил приложение и как с ним связаться для оказания саппорта
— Bitrix24Partners ⏳ work in progress, кто из партнеров поставил приложение, да, те самые Partners Friendly, спасибо Ивану Санникову @zametki_na_polyah за идею
— Application Journal ⏳work in progress, журнал приложения, содержащий бизнесовые события, ваш саппорт скажет вам спасибо.
Как вы понимаете, основная задача — отдать максимум «типового» функционала в стартер приложения
https://github.com/mesilov/bitrix24-php-lib
GitHub
GitHub - mesilov/bitrix24-php-lib: Bitrix24 PHP library for build applications
Bitrix24 PHP library for build applications. Contribute to mesilov/bitrix24-php-lib development by creating an account on GitHub.
4🔥7
Запрыгиваем в последний вагон! Как выиграть два бесплатных билета смотрим внизу 👇
Когда проекты растут, а требований становится больше, скорость разработки начинает упираться не в язык или фреймворки, а в процессы, инструменты и организацию работы.
С 1 по 5 декабря идет Podlodka PHP Crew о том, как ускорить PHP-разработку без стресса и перегрузов.
Все темы прикладные, с упором на ускорение команд и уменьшение рутины:
📄 Контракты пишем — код генерим — Александр Забанов (Вебпрактик): contract-first подход, который снижает количество ошибок и делает интеграции предсказуемыми.
⚙️ Background-агенты в разработке — Пётр Мязин («Пятиминутка PHP») покажет, как построить процесс вокруг ИИ-инструментов.
🧩 Тесты для ускорения — Александр Макаров (Twindo): о роли тестирования в скорости разработки и как распределить ответственность между разработчиками, QA и LLM.
🚦 Светофоры для разработчиков — Ярослав Тарасов (Skyeng) расскажет, как ускорить обратную связь от коммита до продакшена.
🔥 Баланс фич и техдолга — Дмитрий Кириллов поделится холиварным кейсом «100% фичи, 0% техдолг».
🤖 От промпта к продакшену — Павел Бучнев (Spiral Scout,🔥 ) объяснит, почему пора мыслить контекстами, а не только промптами.
Программа и билеты: https://podlodka.io/phpcrew
Что делать?
- подписаться на канал https://t.me/bitrix24phpsdk
- написать комментарий к этому сообщению
- розыгрыш промокодов сегодня в 10:00 по Москве
Когда проекты растут, а требований становится больше, скорость разработки начинает упираться не в язык или фреймворки, а в процессы, инструменты и организацию работы.
С 1 по 5 декабря идет Podlodka PHP Crew о том, как ускорить PHP-разработку без стресса и перегрузов.
Все темы прикладные, с упором на ускорение команд и уменьшение рутины:
📄 Контракты пишем — код генерим — Александр Забанов (Вебпрактик): contract-first подход, который снижает количество ошибок и делает интеграции предсказуемыми.
⚙️ Background-агенты в разработке — Пётр Мязин («Пятиминутка PHP») покажет, как построить процесс вокруг ИИ-инструментов.
🧩 Тесты для ускорения — Александр Макаров (Twindo): о роли тестирования в скорости разработки и как распределить ответственность между разработчиками, QA и LLM.
🚦 Светофоры для разработчиков — Ярослав Тарасов (Skyeng) расскажет, как ускорить обратную связь от коммита до продакшена.
🔥 Баланс фич и техдолга — Дмитрий Кириллов поделится холиварным кейсом «100% фичи, 0% техдолг».
🤖 От промпта к продакшену — Павел Бучнев (Spiral Scout,
Программа и билеты: https://podlodka.io/phpcrew
Что делать?
- подписаться на канал https://t.me/bitrix24phpsdk
- написать комментарий к этому сообщению
- розыгрыш промокодов сегодня в 10:00 по Москве
Please open Telegram to view this post
VIEW IN TELEGRAM
Сейчас на стадии обсуждения вопрос про поддержку новой версии API в текущем SDK, пока вижу так, список ломающих изменений закину в ишулю, если у вас есть дополнительные предложения, то сейчас самое время их озвучить тут или на github
https://github.com/bitrix24/b24phpsdk/issues/317
https://github.com/bitrix24/b24phpsdk/issues/317
1.9.0 🚀
Added
- Added ApplicationSettings contracts for managing application configuration settings with support for multiple scopes (global, user-specific, department-specific).
- Added VersionedScope container class for managing multiple Scope instances with version support.
- Added MCP (Model Context Protocol) server configuration for Bitrix24 API documentation.
- Added .claude/mcp_settings.json with Bitrix24 MCP server setup.
- Added specialized exceptions for OAuth token refresh errors.
Changed
- Updated darsyn/ip dependency constraint to support version 6.x alongside versions 4.x and 5.x
Fixed
- Fixed MOVED_TIME field in DealItemResult and LeadItemResult to return CarbonImmutable instead of int
- Fixed invalid type casting hints in FlowItemResult
- Improved error handling during OAuth token refresh in ApiClient::getNewAuthToken()
- Fixed testFindByEmailWithVerifiedEmail test in ContactPersonRepositoryInterfaceTest to properly mark email as verified
- Fixed testDelete test in ContactPersonRepositoryInterfaceTest to call flush() after delete
Statistics
https://github.com/bitrix24/b24phpsdk/releases/tag/1.9.0
Added
- Added ApplicationSettings contracts for managing application configuration settings with support for multiple scopes (global, user-specific, department-specific).
- Added VersionedScope container class for managing multiple Scope instances with version support.
- Added MCP (Model Context Protocol) server configuration for Bitrix24 API documentation.
- Added .claude/mcp_settings.json with Bitrix24 MCP server setup.
- Added specialized exceptions for OAuth token refresh errors.
Changed
- Updated darsyn/ip dependency constraint to support version 6.x alongside versions 4.x and 5.x
Fixed
- Fixed MOVED_TIME field in DealItemResult and LeadItemResult to return CarbonImmutable instead of int
- Fixed invalid type casting hints in FlowItemResult
- Improved error handling during OAuth token refresh in ApiClient::getNewAuthToken()
- Fixed testFindByEmailWithVerifiedEmail test in ContactPersonRepositoryInterfaceTest to properly mark email as verified
- Fixed testDelete test in ContactPersonRepositoryInterfaceTest to call flush() after delete
Statistics
Bitrix24 API-methods count: 1165
Supported in bitrix24-php-sdk methods count: 640
Coverage percentage: 54.94% 🚀
https://github.com/bitrix24/b24phpsdk/releases/tag/1.9.0
GitHub
Release 1.9.0 · bitrix24/b24phpsdk
Added
Added ApplicationSettings contracts for managing application configuration settings with support for multiple scopes (global, user-specific, department-specific):
Entity interface Applicati...
Added ApplicationSettings contracts for managing application configuration settings with support for multiple scopes (global, user-specific, department-specific):
Entity interface Applicati...
👍2
Фильтрация в B24-PHP-SDK для v3 — делаем или нет?
Привет, это пост для обсуждения надо ли добавлять поддержку фильтрации в сервисы, которые получают сделки, задачи, контакты и т.д.
Ишью с критериями и описанием возможностей фильтрации — https://github.com/bitrix24/b24phpsdk/issues/338
Есть два варианта:
Как обычно
Принимаем массив, а если разработчик накосячил, то он сам виноват, что не может запомнить код служебного поля в сделке😀
Делаем билдеры и заморачиваемся
1. Фильтрация идет по полям конкретной сущности
2. Поддержка пользовательских полей: на конкретном портале могут добавить 100500 полей разных типов в сущность, например в сделку.
3. поддержка операторов: greater than, in, not equal etc.
4. Поддержка вложенных блоков or
5. Поддержка raw-массива для олдов
5. Все эти фильтры надо генерить из метаданных OA3 спецификации и при появлении изменений — ребилдить.
Что вас бесит в таких штуках?
Где вам понравилась реализация подобных фильтров?
Привет, это пост для обсуждения надо ли добавлять поддержку фильтрации в сервисы, которые получают сделки, задачи, контакты и т.д.
Ишью с критериями и описанием возможностей фильтрации — https://github.com/bitrix24/b24phpsdk/issues/338
Я хочу собрать обратную связь от комьюнити PHP-разработчиков.Есть два варианта:
Как обычно
Принимаем массив, а если разработчик накосячил, то он сам виноват, что не может запомнить код служебного поля в сделке
$deals->getList(
[
["status", "=", "NEW"],
["id", "in", [3,4,5]]
]
);
Делаем билдеры и заморачиваемся
Накидал требований, которые описывают мои ожидания от фильтра, если вы уже повидали некоторое дерьмо, то расскажите, пожалуйста, о своем опыте. 1. Фильтрация идет по полям конкретной сущности
$deals->getList(
new DealFilter()
->title('OpenAI')
->price(100500)
);
2. Поддержка пользовательских полей: на конкретном портале могут добавить 100500 полей разных типов в сущность, например в сделку.
$task->getList(
new TaskFilter()
->title('ASAP')
->withUserField('UF_CRM_1234567890','danger')
);
3. поддержка операторов: greater than, in, not equal etc.
$deals->getList(
new DealFilter()
->title()->eq('ASAP')
->id()->in([1,2,3]
);
4. Поддержка вложенных блоков or
$deals->getList(
new DealFilter()
->status()->eq('NEW')
->or(function (DealFilter $f) {
$f->id()->in([1, 2]);
$f->stageId()->eq('WON');
$f->userField('UF_CRM_1700000000')->eq('yes');
})
);
5. Поддержка raw-массива для олдов
$deals->getList(
new DealFilter()
->withRaw(
[
["status", "=", "NEW"],
["id", "in", [3,4,5]]
]
)
);
5. Все эти фильтры надо генерить из метаданных OA3 спецификации и при появлении изменений — ребилдить.
Что вас бесит в таких штуках?
Где вам понравилась реализация подобных фильтров?
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
[Feature in SDK]: add filtering support · Issue #338 · bitrix24/b24phpsdk
Filtering In REST 3.0, data filtering is based on logical expressions that can be combined. All methods that support the filter parameter operate according to this scheme. Vendor documentation http...
https://ai.symfony.com/ — первый релиз одной из подсистем, куда они направляли усилия в 2025 году. Если планируете трогать на новогодних праздниках, то отпишите пожалуйста свои впечатления
🔥2
1.10.0 🚀
Added
- Service
- Service
- Service
- Service
- Service
- Service
- Service
- Service
Statistics
https://github.com/bitrix24/b24phpsdk/releases/tag/1.10.0
Added
- Service
Services\IMOpenLines\Config\Service\Config- Service
Services\IMOpenLines\CRMChat\Service\Chat - Service
Services\IMOpenLines\Message\Service\Message - Service
Services\IMOpenLines\Bot\Service\Bot - Service
Services\IMOpenLines\Operator\Service\Operator - Service
Services\IMOpenLines\Session\Service\Session - Service
Services\SonetGroup\Service\SonetGroup- Service
Services\IMOpenLines\Connector\Service\Connector Statistics
Bitrix24 API-methods count: 1165
Supported in bitrix24-php-sdk methods count: 697
Coverage percentage: 59.83% 🚀
Supported in bitrix24-php-sdk methods with batch wrapper count: 91
https://github.com/bitrix24/b24phpsdk/releases/tag/1.10.0
GitHub
Release 1.10.0 · bitrix24/b24phpsdk
Added
Added service Services\IMOpenLines\Config\Service\Config with support methods,
see imopenlines.config.*:
add adds a new open line
delete deletes an open line
get retrieves an open line by I...
Added service Services\IMOpenLines\Config\Service\Config with support methods,
see imopenlines.config.*:
add adds a new open line
delete deletes an open line
get retrieves an open line by I...
👍3🔥2
🤖 AI в практике разработчиков: новый сезон Podlodka AI Crew
«Мы поигрались с промптом, но пока не внедряли» — часто разговоры про AI в разработке заканчиваются именно так.
Инструментов всё больше, а вот времени на то, чтобы разобраться и сделать так, чтобы магия заработала, порой не хватает.
С 16 по 20 февраля у Podlodka AI Crew пройдёт сезон «AI-агенты в разработке»: проверенные рабочие сценарии от практиков индустрии.
👀 В программе:
• единый AI-workflow для разработчика
• автоматизация стендапов и работы с документацией
• Claude Code, субагенты для кодинга
• практические кейсы внедрения AI в SRE
• подходы к созданию промптов с насыщенным контекстом
Формат — классический для Podlodka Crew: 5 дней, 10+ спикеров, 10 сессий и закрытое комьюнити в Telegram.
Отдельный плюс — цена: заметно ниже привычных конференций, при этом контента много, и он ориентирован на практику.
👉🏻Если тема AI в разработке вам интересна и хочется меньше хайпа, больше дела — держите ссылку.
До 10 февраля можно забрать билет по early-bird цене! А по промокоду ai_crew_2_VP0u7O получите скидку🎁
«Мы поигрались с промптом, но пока не внедряли» — часто разговоры про AI в разработке заканчиваются именно так.
Инструментов всё больше, а вот времени на то, чтобы разобраться и сделать так, чтобы магия заработала, порой не хватает.
С 16 по 20 февраля у Podlodka AI Crew пройдёт сезон «AI-агенты в разработке»: проверенные рабочие сценарии от практиков индустрии.
👀 В программе:
• единый AI-workflow для разработчика
• автоматизация стендапов и работы с документацией
• Claude Code, субагенты для кодинга
• практические кейсы внедрения AI в SRE
• подходы к созданию промптов с насыщенным контекстом
Формат — классический для Podlodka Crew: 5 дней, 10+ спикеров, 10 сессий и закрытое комьюнити в Telegram.
Отдельный плюс — цена: заметно ниже привычных конференций, при этом контента много, и он ориентирован на практику.
👉🏻Если тема AI в разработке вам интересна и хочется меньше хайпа, больше дела — держите ссылку.
До 10 февраля можно забрать билет по early-bird цене! А по промокоду ai_crew_2_VP0u7O получите скидку🎁
👍2
1.10.1 🚀
Fixed
Extend Scope and PortalLicenseFamily enums with new options
https://github.com/bitrix24/b24phpsdk/releases/tag/1.10.1
Fixed
Extend Scope and PortalLicenseFamily enums with new options
https://github.com/bitrix24/b24phpsdk/releases/tag/1.10.1
GitHub
Release 1.10.1 · bitrix24/b24phpsdk
What's Changed
Extend Scope and PortalLicenseFamily enums with new options, fix … by @mesilov in #376
ship 1.10.1 by @mesilov in #378
Extend Scope and PortalLicenseFamily enums with new options, fix … by @mesilov in #376
ship 1.10.1 by @mesilov in #378
👍1
3.0.0 🚀
Added
API v3 support: Tasks & EventLog 🎉
- Added support for Bitrix24 API v3
- Added REST 3.0 API version support:
- Added type-safe filter builder system for REST 3.0 filtering
- Added select builder infrastructure for type-safe field selection:
- Added OpenAPI schema infrastructure
- Switched Task domain methods to Bitrix24 API v3 and documented services/methods currently using v3:
- Added service Services\Main\Service\EventLog with REST v3 event log methods
- Added Services\Main\Service\EventLogSelectBuilder — fluent select builder for event log fields
- Added Services\Main\Service\EventLogFilter — type-safe filter builder with typed condition builders per field
Everything else
- Added deptrac/deptrac (`^3.0`) as a dev dependency — architectural layer enforcement tool.
- Added Services\AbstractSelectBuilder::allSystemFields() — convenience method that uses reflection
- Added src/Legacy/ namespace with LegacyServiceBuilder and LegacyTaskServiceBuilder, accessible via $serviceBuilder->getLegacyServiceBuilder()->getTaskScope()->task().
- Added isPartner(): bool method to ContactPersonInterface to check if the contact person is a partner employee
Changed
- Breaking changes in Bitrix24PartnerInterface and Bitrix24PartnerRepositoryInterface
- Renamed getBitrix24PartnerId(): int to getBitrix24PartnerNumber(): int in Bitrix24PartnerInterface to clarify that this method returns the partner's external vendor site number, not an internal database ID
- Renamed findByBitrix24PartnerId(int $bitrix24PartnerId) to findByBitrix24PartnerNumber(int $bitrix24PartnerNumber) in Bitrix24PartnerRepositoryInterface
- ContactPersonInterface::markMobilePhoneAsVerified() now accepts an optional ?CarbonImmutable $verifiedAt = null
- ContactPersonInterface::markEmailAsVerified() now accepts an optional
?CarbonImmutable $verifiedAt = null parameter.
- Updated: ContactPersonInterface, ContactPersonReferenceEntityImplementation,
ContactPersons.md documentation, added testMarkEmailAsVerifiedWithSpecificDate unit test.
- Removed deprecated RemoteEventsFabric
Fixed
- Fixed handling of scope and licence_family fields.
https://github.com/bitrix24/b24phpsdk/releases
Added
API v3 support: Tasks & EventLog 🎉
- Added support for Bitrix24 API v3
- Added REST 3.0 API version support:
- Core\Contracts\ApiVersion
- Core\EndpointUrlFormatter - Added type-safe filter builder system for REST 3.0 filtering
- Added select builder infrastructure for type-safe field selection:
- Added OpenAPI schema infrastructure
- Switched Task domain methods to Bitrix24 API v3 and documented services/methods currently using v3:
- Services\Task\Service\Task
- Services\Task\Service\TaskChat
- Services\Task\Service\TaskFile
- Services\Main\Service\Documentation - Added service Services\Main\Service\EventLog with REST v3 event log methods
- Added Services\Main\Service\EventLogSelectBuilder — fluent select builder for event log fields
- Added Services\Main\Service\EventLogFilter — type-safe filter builder with typed condition builders per field
Everything else
- Added deptrac/deptrac (`^3.0`) as a dev dependency — architectural layer enforcement tool.
- Added Services\AbstractSelectBuilder::allSystemFields() — convenience method that uses reflection
- Added src/Legacy/ namespace with LegacyServiceBuilder and LegacyTaskServiceBuilder, accessible via $serviceBuilder->getLegacyServiceBuilder()->getTaskScope()->task().
- Services\Lists\Lists\Service\Lists
- Services\Lists\Field\Service\Field
- Services\Lists\Section\Service\Section
- Services\Lists\Element\Service\Element
- Services\Landing\Site\Service\Site
- Services\Landing\SysPage\Service\SysPage
- Services\Landing\Role\Service\Role
- Services\Landing\Page\Service\Page
- Services\Landing\Block\Service\Block
- Services\Landing\Template\Service\Template
- Services\Landing\Repo\Service\Repo
- Services\Landing\Demos\Service\Demos
- Services\IMOpenLines\Connector\Service\Connector
- Services\IMOpenLines\Config\Service\Config
- Services\IMOpenLines\CRMChat\Service\Chat
- Services\IMOpenLines\Message\Service\Message
- Services\IMOpenLines\Bot\Service\Bot
- Services\IMOpenLines\Operator\Service\Operator
- Services\IMOpenLines\Session\Service\Session
- Services\SonetGroup\Service\SonetGroup - Added isPartner(): bool method to ContactPersonInterface to check if the contact person is a partner employee
Changed
- Breaking changes in Bitrix24PartnerInterface and Bitrix24PartnerRepositoryInterface
- Renamed getBitrix24PartnerId(): int to getBitrix24PartnerNumber(): int in Bitrix24PartnerInterface to clarify that this method returns the partner's external vendor site number, not an internal database ID
- Renamed findByBitrix24PartnerId(int $bitrix24PartnerId) to findByBitrix24PartnerNumber(int $bitrix24PartnerNumber) in Bitrix24PartnerRepositoryInterface
- ContactPersonInterface::markMobilePhoneAsVerified() now accepts an optional ?CarbonImmutable $verifiedAt = null
- ContactPersonInterface::markEmailAsVerified() now accepts an optional
?CarbonImmutable $verifiedAt = null parameter.
- Updated: ContactPersonInterface, ContactPersonReferenceEntityImplementation,
ContactPersons.md documentation, added testMarkEmailAsVerifiedWithSpecificDate unit test.
- Removed deprecated RemoteEventsFabric
Fixed
- Fixed handling of scope and licence_family fields.
https://github.com/bitrix24/b24phpsdk/releases
GitHub
Releases · bitrix24/b24phpsdk
Bitrix24 PHP SDK for REST API. Contribute to bitrix24/b24phpsdk development by creating an account on GitHub.
👍3
0.4.0 🚀
Added
- ContactPersons support (main feature of 0.4.0)
- Added
- Added
- Added
- Added
- Added
- `ContactPersonType` enum (`personal` |
Changed
- `ContactPerson` entity
- Constructor accepts optional
-
-
-
- `ApplicationInstallation` entity
-
- `OnAppInstall\Handler`
- Now throws
Fixed
- SDK contract compatibility after `bitrix24/b24phpsdk` update
- Updated
- Narrowed
- Restored green unit test suite (`170` tests)
https://github.com/mesilov/bitrix24-php-lib/releases
Спасибо Кириллу и Андрею за огромный вклад в разработку
следующий шаг — попробовать собрать реальное тиражное приложение поверх всего этого добра и обновить AI-стартер
Added
- ContactPersons support (main feature of 0.4.0)
- Added
ApplicationInstallations\UseCase\InstallContactPerson\Command / Handler to create and link a ContactPerson to an ApplicationInstallation- Added
ApplicationInstallations\UseCase\UnlinkContactPerson\Command / Handler to unlink a contact person from an installation- Added
ContactPersons\UseCase\ChangeProfile\Command / Handler to update FullName, email, and mobile phone- Added
ContactPersons\UseCase\MarkEmailAsVerified\Command / Handler to confirm email ownership- Added
ContactPersons\UseCase\MarkMobilePhoneAsVerified\Command / Handler to confirm mobile phone ownership- `ContactPersonType` enum (`personal` |
partner`) in `Bitrix24\Lib\ContactPersons\EnumChanged
- `ContactPerson` entity
- Constructor accepts optional
$createdAt / $updatedAt parameters so SDK contract tests can assert stable timestamps-
$isEmailVerified and $isMobilePhoneVerified are initialized from $emailVerifiedAt / $mobilePhoneVerifiedAt in constructor-
getBitrix24UserId() return type narrowed from ?int to int to match ContactPersonInterface-
markAsDeleted() now throws InvalidArgumentException (was `LogicException`) to satisfy the SDK contract- `ApplicationInstallation` entity
-
unlinkContactPerson() and unlinkBitrix24PartnerContactPerson() now return early when the respective ID is already null to avoid unnecessary updatedAt mutation- `OnAppInstall\Handler`
- Now throws
ApplicationInstallationNotFoundException when installation cannot be found by member ID (instead of silent no-op)Fixed
- SDK contract compatibility after `bitrix24/b24phpsdk` update
- Updated
createContactPersonImplementation() signatures in ContactPersonTest and ContactPersonRepositoryTest (`int $bitrix24UserId` moved to position 5 and made non-nullable)- Narrowed
ContactPersonBuilder::$bitrix24UserId from ?int to int- Restored green unit test suite (`170` tests)
https://github.com/mesilov/bitrix24-php-lib/releases
Спасибо Кириллу и Андрею за огромный вклад в разработку
следующий шаг — попробовать собрать реальное тиражное приложение поверх всего этого добра и обновить AI-стартер
GitHub
Releases · mesilov/bitrix24-php-lib
Bitrix24 PHP library for build applications. Contribute to mesilov/bitrix24-php-lib development by creating an account on GitHub.
🔥4
bitrix24-php-lib v0.5.0 🚀
Набор сущностей для разработки приложений
Added
- Journal bounded context — 72
- Install-flow documentation
Changed
- Application installation flow — 90
-
-
- Duplicate
- Domain value object namespace
-
- Updated install-related commands and tests to use the shared namespace
- Developer workflow docs
- Added project-level MCP configuration in
- Documented MCP checks and mandatory
BC⚠️
- Doctrine schema naming normalization — 93
- Tables renamed:
-
-
-
-
Fixed
- Premature activation during install — 90
-
- Finish events are no longer emitted before Bitrix24 sends the token-bearing finish step
- Reinstall handling
- Reinstall over pending installations now blocks and archives the previous installation pair before creating a new one
https://github.com/mesilov/bitrix24-php-lib
Набор сущностей для разработки приложений
Added
- Journal bounded context — 72
- Install-flow documentation
Changed
- Application installation flow — 90
-
Install now distinguishes one-step installs with applicationToken from UI/two-step installs without token-
OnAppInstall is now the canonical finish-step for pending installations created without a token- Duplicate
ONAPPINSTALL events for already active installations are handled as warning no-op calls- Domain value object namespace
-
Bitrix24\Lib\Bitrix24Accounts\ValueObjects\Domain moved to Bitrix24\Lib\Common\ValueObjects\Domain- Updated install-related commands and tests to use the shared namespace
- Developer workflow docs
- Added project-level MCP configuration in
.mcp.json- Documented MCP checks and mandatory
Makefile entrypoints for tests and linters in README.md and AGENTS.mdBC⚠️
- Doctrine schema naming normalization — 93
- Tables renamed:
-
application_installation -> b24lib_application_installations-
application_settings -> b24lib_application_settings-
bitrix24account -> b24lib_bitrix24_accounts-
contact_person -> b24lib_contact_personsFixed
- Premature activation during install — 90
-
Bitrix24Account and ApplicationInstallation no longer switch to active when Install is called without applicationToken- Finish events are no longer emitted before Bitrix24 sends the token-bearing finish step
- Reinstall handling
- Reinstall over pending installations now blocks and archives the previous installation pair before creating a new one
https://github.com/mesilov/bitrix24-php-lib
👍3
🧭 Разбираем современный PHP вместе с Podlodka PHP Crew
PHP-стек может устаревать незаметно: решения вроде бы работают, но скорость разработки снижается, стоимость поддержки растёт, а количество возможностей сокращается.
💡 Эксперты Podlodka PHP Crew собрали онлайн-конференцию «Современный стек PHP-разработки», чтобы разобраться, как всё устроено сегодня.
🗓С 20 по 24 апреля участники:
• изучат, как сегодня запускают PHP-приложения (worker mode, новые рантаймы, FrankenPHP),
• посмотрят, как изменилась инфраструктура и что пора выкинуть из Docker-стека,
• обсудят, как реально применять AI-агентов в разработке (не только писать код, но и расследовать баги и планировать изменения),
• разберут практические кейсы (например, в онлайн-режиме будут запускать мультиплеерную игру на PHP с Temporal и RoadRunner),
• и в целом поймут, какие инструменты и подходы действительно стоит внедрять в 2026.
Формат — пять дней живых Zoom-сессий по утрам и вечерам, закрытое комьюнити в Telegram и общение со спикерами.
Если хотите обновить свой стек и лучше понимать, куда движется разработка на PHP — обязательно присоединяйтесь👇
🎟Покупай билет и залетай прямо перед погружением!
По промокоду php_crew_8_iaX6kA получите скидку 500р🎁
PHP-стек может устаревать незаметно: решения вроде бы работают, но скорость разработки снижается, стоимость поддержки растёт, а количество возможностей сокращается.
💡 Эксперты Podlodka PHP Crew собрали онлайн-конференцию «Современный стек PHP-разработки», чтобы разобраться, как всё устроено сегодня.
🗓С 20 по 24 апреля участники:
• изучат, как сегодня запускают PHP-приложения (worker mode, новые рантаймы, FrankenPHP),
• посмотрят, как изменилась инфраструктура и что пора выкинуть из Docker-стека,
• обсудят, как реально применять AI-агентов в разработке (не только писать код, но и расследовать баги и планировать изменения),
• разберут практические кейсы (например, в онлайн-режиме будут запускать мультиплеерную игру на PHP с Temporal и RoadRunner),
• и в целом поймут, какие инструменты и подходы действительно стоит внедрять в 2026.
Формат — пять дней живых Zoom-сессий по утрам и вечерам, закрытое комьюнити в Telegram и общение со спикерами.
Если хотите обновить свой стек и лучше понимать, куда движется разработка на PHP — обязательно присоединяйтесь👇
🎟Покупай билет и залетай прямо перед погружением!
По промокоду php_crew_8_iaX6kA получите скидку 500р🎁
Первый, кто поставит звезду на репозиторий https://github.com/bitrix24/b24phpsdk и пришлет скрин в комментарий к посту получит бесплатную проходку