Releases: mesilov/bitrix24-php-lib
Releases · mesilov/bitrix24-php-lib
0.5.2
BC
- Journal table namespacing fix — #102
- Table renamed:
journal->b24lib_journal
- Explicit schema object names renamed:
idx_journal_composite->b24lib_journal_idx_compositeidx_journal_created_at->b24lib_journal_idx_created_atidx_journal_member_id->b24lib_journal_idx_member_id
- Existing PostgreSQL installations created from
0.5.0or0.5.1must rename the existing journal table and indexes before the first run on0.5.2 - Example SQL:
- Table renamed:
ALTER TABLE journal RENAME TO b24lib_journal;
ALTER INDEX idx_journal_composite RENAME TO b24lib_journal_idx_composite;
ALTER INDEX idx_journal_created_at RENAME TO b24lib_journal_idx_created_at;
ALTER INDEX idx_journal_member_id RENAME TO b24lib_journal_idx_member_id;Changed
- Symfony 8 boot compatibility for consumer applications — #106
- Relaxed
doctrine/doctrine-bundlefrom3.2.2to^3.2.2 || ^3.3@dev - Keeps stable installs on
3.2.2while allowing Symfony 8 consumer applications to opt into the3.3.x-devline - Documents explicit compatibility with Symfony
8.0.*consumer applications - Removes the previously observed Doctrine bundle bootstrap blocker during kernel boot
- Relaxed
- Repository-local maintainer workflow for agents
- Added
.claude/skills/bitrix24-php-lib-maintainer/SKILL.mdas the default local skill for issue-driven and maintainer tasks - Documented local-skill precedence and project MCP checks in
AGENTS.mdandCLAUDE.md
- Added
0.5.1
Changed
- Dependency refresh for PHP 8.5 and current QA toolchain
- Raised root PHP constraint from
8.3.* || 8.4.*to8.4.* || 8.5.* - Allowed
giggsey/libphonenumber-for-php^9in addition to^8 - Updated dev tooling to current major versions:
phpstan^2,phpunit^13,psalm^6,rector^2 - Expanded Symfony dev constraints to support both
^7and^8fordebug-bundle,property-access,stopwatch, andvar-exporter
- Raised root PHP constraint from
- Static-analysis compatibility cleanups
- Narrowed install/account handler internals with explicit assertions and intersection types for aggregate roots that emit domain events
- Added explicit callback parameter types in
ApplicationSettingsListCommand - Removed deprecated
strictBooleansprepared set fromrector.php
Fixed
- Functional test bootstrap compatibility with Doctrine ORM 3 on PHP 8.4+
- Enabled Doctrine native lazy objects in test
EntityManagerconfiguration - Restored successful
make test-functionalruns with current Symfonyvar-exporter
- Enabled Doctrine native lazy objects in test
- PHPUnit 13 test-suite compatibility
- Reworked unit and functional tests to stop using no-expectation mocks where stubs/fakes are more appropriate
- Removed PHPUnit notices from
make test-unitandmake test-functional
- ApplicationSettings repository functional coverage
- Replaced the previously skipped PostgreSQL unique-constraint test with an assertion of the actual database behavior for duplicate global settings with
NULLscope values
- Replaced the previously skipped PostgreSQL unique-constraint test with an assertion of the actual database behavior for duplicate global settings with
0.5.0
Added
- Journal bounded context (main feature of 0.5.0) — #72
- Added
JournalItemaggregate andContextvalue object for portal technical logs - Added
Bitrix24\Lib\Journal\Entity\LogLevelenum with PSR-3 compatible levels - Added
JournalItemRepositoryInterface,DoctrineDbalJournalItemRepository, andJournalLogger - Added pagination-aware journal queries by
memberIdandapplicationInstallationId
- Added
- Install-flow documentation
- Added
src/ApplicationInstallations/Docs/application-installations.mdwith one-step / two-step install contracts, canonical finish-step rules, and corner cases
- Added
Changed
- Application installation flow — #90
Installnow distinguishes one-step installs withapplicationTokenfrom UI/two-step installs without tokenOnAppInstallis now the canonical finish-step for pending installations created without a token- Duplicate
ONAPPINSTALLevents for already active installations are handled as warningno-opcalls
- Domain value object namespace
Bitrix24\Lib\Bitrix24Accounts\ValueObjects\Domainmoved toBitrix24\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
Makefileentrypoints for tests and linters inREADME.mdandAGENTS.md
- Added project-level MCP configuration in
BC
- Doctrine schema naming normalization — #93
- Tables renamed:
application_installation->b24lib_application_installationsapplication_settings->b24lib_application_settingsbitrix24account->b24lib_bitrix24_accountscontact_person->b24lib_contact_persons
- Explicit schema object names renamed for
b24lib_application_settings:unique_app_setting_scope->b24lib_application_settings_unique_scopeidx_application_installation_id->b24lib_application_settings_idx_application_installation_ididx_b24_user_id->b24lib_application_settings_idx_b24_user_ididx_b24_department_id->b24lib_application_settings_idx_b24_department_ididx_key->b24lib_application_settings_idx_keyidx_status->b24lib_application_settings_idx_status
- Existing PostgreSQL installations must rename the existing tables and explicitly named indexes before the first run on
0.5.0 - Example SQL:
- Tables renamed:
ALTER TABLE application_installation RENAME TO b24lib_application_installations;
ALTER TABLE application_settings RENAME TO b24lib_application_settings;
ALTER TABLE bitrix24account RENAME TO b24lib_bitrix24_accounts;
ALTER TABLE contact_person RENAME TO b24lib_contact_persons;
ALTER INDEX unique_app_setting_scope RENAME TO b24lib_application_settings_unique_scope;
ALTER INDEX idx_application_installation_id RENAME TO b24lib_application_settings_idx_application_installation_id;
ALTER INDEX idx_b24_user_id RENAME TO b24lib_application_settings_idx_b24_user_id;
ALTER INDEX idx_b24_department_id RENAME TO b24lib_application_settings_idx_b24_department_id;
ALTER INDEX idx_key RENAME TO b24lib_application_settings_idx_key;
ALTER INDEX idx_status RENAME TO b24lib_application_settings_idx_status;Fixed
- Premature activation during install — #90
Bitrix24AccountandApplicationInstallationno longer switch toactivewhenInstallis called withoutapplicationToken- 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
0.4.0
Added
- ContactPersons support (main feature of 0.4.0)
- Added
ApplicationInstallations\UseCase\InstallContactPerson\Command/Handlerto create and link aContactPersonto anApplicationInstallation - Added
ApplicationInstallations\UseCase\UnlinkContactPerson\Command/Handlerto unlink a contact person from an installation - Added
ContactPersons\UseCase\ChangeProfile\Command/Handlerto updateFullName, email, and mobile phone - Added
ContactPersons\UseCase\MarkEmailAsVerified\Command/Handlerto confirm email ownership - Added
ContactPersons\UseCase\MarkMobilePhoneAsVerified\Command/Handlerto confirm mobile phone ownership
- Added
ContactPersonTypeenum (personal|partner) inBitrix24\Lib\ContactPersons\Enum
Changed
ContactPersonentity- Constructor accepts optional
$createdAt/$updatedAtparameters so SDK contract tests can assert stable timestamps $isEmailVerifiedand$isMobilePhoneVerifiedare initialized from$emailVerifiedAt/$mobilePhoneVerifiedAtin constructorgetBitrix24UserId()return type narrowed from?inttointto matchContactPersonInterfacemarkAsDeleted()now throwsInvalidArgumentException(wasLogicException) to satisfy the SDK contract
- Constructor accepts optional
ApplicationInstallationentityunlinkContactPerson()andunlinkBitrix24PartnerContactPerson()now return early when the respective ID is alreadynullto avoid unnecessaryupdatedAtmutation
OnAppInstall\Handler- Now throws
ApplicationInstallationNotFoundExceptionwhen installation cannot be found by member ID (instead of silent no-op)
- Now throws
Fixed
- SDK contract compatibility after
bitrix24/b24phpsdkupdate- Updated
createContactPersonImplementation()signatures inContactPersonTestandContactPersonRepositoryTest(int $bitrix24UserIdmoved to position 5 and made non-nullable) - Narrowed
ContactPersonBuilder::$bitrix24UserIdfrom?inttoint - Restored green unit test suite (
170tests)
- Updated
New Contributors
0.3.0
0.2.0
0.1.0
What's Changed
By @mesilov
- Add initial project setup with CI configuration — #2
- Fix incorrect annotation syntax from
#[\Override]to#[Override]— #3 - Rename package and namespaces to
bitrix24-php-lib— #4 - Add docker structure — #13
- Add application install — #43
By @KarlsonComplete
- Add docker containers — #12
- Add docker structure — #14, #15, #16, #17, #19, #27, #29, #32, #34, #36, #37, #38
- Added mapping, fixing functional tests — #18
- Removed attributes in the account — #20
- Fixed some errors in functional tests — #21
- Added fetcher test and removed more comments — #22
- Fixes — #23
- Fixes for scope — #24
- Update fetcher and flusher — #25
- Add application install — #40