Media is too big
VIEW IN TELEGRAM
BITRIX24-PHP-SDK-EXAMPLES-05
tl;dr;
— Composer License Checker
— PHP Coding Standards Fixer
— PHPStan
— rector
— Composer dependency analyser
📺 https://youtu.be/g3hScZhUrcM
tl;dr;
— Composer License Checker
— PHP Coding Standards Fixer
— PHPStan
— rector
— Composer dependency analyser
📺 https://youtu.be/g3hScZhUrcM
🔥3
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
Denoscription 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 — будут больше не нужны / Валентин Бартенев
Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем HighLoad++ 2024
2 и 3 декабря 2024.
Москва, Кампус СКОЛКОВО
Презентация и тезисы:
https://highload.ru/moscow/2024/abstracts/13181
Одним из наиболее распространенных способов…
2 и 3 декабря 2024.
Москва, Кампус СКОЛКОВО
Презентация и тезисы:
https://highload.ru/moscow/2024/abstracts/13181
Одним из наиболее распространенных способов…
🤯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://news.1rj.ru/str/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://news.1rj.ru/str/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()
->noscript('OpenAI')
->price(100500)
);
2. Поддержка пользовательских полей: на конкретном портале могут добавить 100500 полей разных типов в сущность, например в сделку.
$task->getList(
new TaskFilter()
->noscript('ASAP')
->withUserField('UF_CRM_1234567890','danger')
);
3. поддержка операторов: greater than, in, not equal etc.
$deals->getList(
new DealFilter()
->noscript()->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