mesilov / bitrix24-php-lib
A powerful PHP library for rapid Bitrix24 application development
Requires
- php: ^8.3
- ext-bcmath: *
- ext-curl: *
- ext-intl: *
- ext-json: *
- bitrix24/b24phpsdk: dev-dev
- darsyn/ip: ^5
- doctrine/doctrine-bundle: *
- doctrine/doctrine-migrations-bundle: *
- doctrine/orm: ^3
- fig/http-message-util: ^1
- giggsey/libphonenumber-for-php: ^8
- knplabs/knp-paginator-bundle: ^6
- moneyphp/money: ^4
- nesbot/carbon: ^3
- psr/log: ^3
- symfony/cache: ^7
- symfony/console: ^7
- symfony/dotenv: ^7
- symfony/event-dispatcher: ^7
- symfony/serializer: ^7
- symfony/uid: ^7
- symfony/yaml: ^7
Requires (Dev)
- doctrine/migrations: ^3
- fakerphp/faker: ^1
- friendsofphp/php-cs-fixer: ^3.64
- lendable/composer-license-checker: ^1.2
- monolog/monolog: ^3
- phpstan/phpstan: ^1
- phpunit/phpunit: ^11
- psalm/phar: ^5
- rector/rector: ^1
- roave/security-advisories: dev-master
- symfony/debug-bundle: ^7
- symfony/stopwatch: ^7
This package is auto-updated.
Last update: 2025-08-23 19:41:30 UTC
README
PHP lib for Bitrix24 application development
Build status
CI\CD status on master |
---|
Application Domain
The library is designed for rapid development of Bitrix24 applications. Provides data storage layer in PostgreSQL database using Doctrine ORM.
Implements contracts from bitrix24-php-sdk.
Supported Contracts
Bitrix24Accounts — ✅
Responsible for storing Bitrix24 accounts with portal access tokens.
ApplicationInstallations — ✅
Responsible for storing installation facts of applications on specific Bitrix24 portals
ContactPersons — ⏳ work in progress
Responsible for storing contact persons who performed application installation
Bitrix24Partners — ⏳ work in progress
Responsible for storing Bitrix24 partners who performed installation or service the portal
Architecture
Layers and Abstraction Levels
bitrix24-app-laravel-skeleton – Laravel application template
bitrix24-app-symfony-skeleton – Symfony application template
bitrix24-php-lib – application entities work and their storage in database
bitrix24-php-sdk – transport layer + transport events (expired token, portal renamed)
Bounded Context Folder Structure
src/
Bitrix24Accounts
Controllers
Entity
Exceptions
Events
EventListeners
Infrastructure
ConsoleCommands
Doctrine
Types
Repository
ReadModel
UseCases
SomeUseCase
Tests
Quick Start
Prerequisites
- Docker and Docker Compose
- Make
Running Tests
# Initialize and start services make up # Run functional tests (uses default database configuration) make test-run-functional # Run linters make lint-phpstan make lint-cs-fixer make lint-rector
Database Configuration
Default database credentials are pre-configured in .env
:
- Host:
database
(Docker service) - Database:
b24phpLibTest
- User:
b24phpLibTest
- Password:
b24phpLibTest
No additional configuration needed for running tests.
Infrastructure
- library is made cloud-agnostic
Development Rules
- We use linters
- Library is covered with tests
- All work is organized through issues
- Development processes are remote first
- Think and discuss — then write