TGViewer
Channel Public Channel
Bitrix24 Apps & BITRIX24-PHP-SDK

Bitrix24 Apps & BITRIX24-PHP-SDK

@bitrix24phpsdk

Разработка приложений для Bitrix24 на базе BITRIX24-PHP-SDK
Subscribers
153
Photos
11
Videos
8
Links
54
Recent Posts 20 shown
Post #80 610
Первый, кто поставит звезду на репозиторий https://github.com/bitrix24/b24phpsdk и пришлет скрин в комментарий к посту получит бесплатную проходку
Post #79 330
🧭 Разбираем современный 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р🎁
Post #78 586
bitrix24-php-lib v0.5.0 🚀
Набор сущностей для разработки приложений

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.md

BC⚠️
- 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_persons

Fixed
- 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
Post #77 636
0.4.0 🚀

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\Enum

Changed
- `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
Post #76 473
3.0.0 🚀

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
Post #74 268
🤖 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 получите скидку🎁
  • 👍 2
Post #73 579
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...
  • 👍 3
  • 🔥 2
Post #72 313
https://ai.symfony.com/ — первый релиз одной из подсистем, куда они направляли усилия в 2025 году. Если планируете трогать на новогодних праздниках, то отпишите пожалуйста свои впечатления
  • 🔥 2
Post #71 627
Фильтрация в B24-PHP-SDK для v3 — делаем или нет?

Привет, это пост для обсуждения надо ли добавлять поддержку фильтрации в сервисы, которые получают сделки, задачи, контакты и т.д.
Ишью с критериями и описанием возможностей фильтрации — 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 спецификации и при появлении изменений — ребилдить.

Что вас бесит в таких штуках?
Где вам понравилась реализация подобных фильтров?
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...
Post #70 375
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...
  • 👍 2
Post #69 484
Сейчас на стадии обсуждения вопрос про поддержку новой версии API в текущем SDK, пока вижу так, список ломающих изменений закину в ишулю, если у вас есть дополнительные предложения, то сейчас самое время их озвучить тут или на github

https://github.com/bitrix24/b24phpsdk/issues/317
Post #67 217
Запрыгиваем в последний вагон! Как выиграть два бесплатных билета смотрим внизу 👇

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

С 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 по Москве
Post #65 791
Привет, вышел новый релиз 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
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.
  • 🔥 7
Post #64 646
🚀 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 incoming
events
- 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 Endpoints

Changed
- 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) to
validate(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 $endpoints
object
- 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 object

Deprecated
- Method RemoteEventsFactory::createEvent marked as deprecated, use RemoteEventsFactory::create and RemoteEventsFactory::validate instead

Statistics
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...
  • 🔥 1
Post #63 562
🚀 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:
- 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
Post #62 748
Что по инфраструктуре?

Приложение работает поверх инфраструктуры, нфраструктурной единицей у нас будет докер-контейнер.
Вопрос в том, что будем выбирать в качестве аппликейшн\веб-сервера. Какие у нас варианты:

Встроенный в 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 -------- Крупнейшая профессиональная конференция для разработчиков…
  • 🤯 1
Post #61 605
Привет, текущее положение дел по шаблонам приложений

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
Post #60 620
🚀 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
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....
Post #59 721
BITRIX24-PHP-EXAMPLES-08

tl;dr;
— работа с batch-запросами
— CLI приложения на symfony console
— обработка сигналов POSIX

📺 https://youtu.be/Lg-FITVElNc
  • 👍 1
Older posts →

About this channel

How can I read @bitrix24phpsdk without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Bitrix24 Apps & BITRIX24-PHP-SDK: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Bitrix24 Apps & BITRIX24-PHP-SDK have?
Bitrix24 Apps & BITRIX24-PHP-SDK (@bitrix24phpsdk) has 153 subscribers on Telegram, refreshed roughly every 30 minutes.
Does Bitrix24 Apps & BITRIX24-PHP-SDK know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →