arrilot/bitrix-models
A lightweight Eloquent-style ORM for Bitrix: map infoblocks and highload blocks to PHP model classes, query them through a fluent builder, and use familiar ActiveRecord patterns. It makes Bitrix data access cleaner and more maintainable for PHP projects.
What it actually is. Despite being catalogued as a Laravel/PHP package, arrilot/bitrix-models is the inverse of a Laravel add-on: it is a shim that pulls Laravel's illuminate/database (Eloquent) into an existing 1C-Bitrix application. It gives Bitrix developers Eloquent models, relations, casts, and query-builder ergonomics on top of Bitrix's legacy CIBlock* / $DB data layer. There is no Laravel application here — Laravel is the dependency, Bitrix is the host.
Architecture fit. Fit is narrow and conditional:
Integration feasibility. Feasible as a spike, questionable as a platform bet:
illuminate/* 5.5–6.x and PHP 7.1–7.4 semantics. Anything on PHP 8.1+ / Laravel 9+ should assume incompatibility until proven otherwise by an actual composer require + smoke test.Technical risk. High and concentrated in abandonment:
Key questions to resolve before any commitment:
illuminate/database version does composer.json actually permit, and does that version receive security fixes?CIBlock*, or a Doctrine DBAL mapping) cheaper than adopting an unmaintained shim?Verdict. Score 1.52, archived, opportunity 1.34 — the numbers agree with the qualitative read. Treat this as reference source code to vendor and own, not as a dependency to install. Value exists, but only for teams already trapped on Bitrix who want Eloquent ergonomics badly enough to fund a fork.
Stack fit. Only one target stack qualifies: a Bitrix-hosted PHP monolith with Composer available and a team fluent in modern PHP. It does not fit Laravel/Symfony applications, and it does not fit Bitrix installs stuck on pre-Composer deployment.
Compatibility gates (in order, all must pass):
composer.json and the pinned Illuminate release.illuminate/database version supported by the package is still receiving security patches, or is consciously accepted as frozen.Migration path — incremental, never big-bang:
CIBlockElement::Add/Update.Sequencing note. Do not interleave this with a Bitrix or PHP major upgrade. Run the spike on the current stack, then validate the fork against the target stack as a separate, funded workstream. Combining the two makes failure attribution impossible.
Maintenance. This is the dominant cost. An archived package transfers 100% of maintenance to you. Realistic budget: a named owner plus roughly 0.2–0.5 FTE ongoing for dependency tracking, PHP/Bitrix upgrade compatibility, and security triage — spiking during platform upgrade years. That is cheap only relative to a rewrite you were not going to do anyway.
Support. Community-only and effectively cold: a 2020 archive with ~118 stars means GitHub issues are the sole channel, responses are unlikely, and the surrounding knowledge base is largely Russian-language Bitrix material. Escalation path: none. Internal expertise is the support contract.
Scaling. Two concerns:
CIBlock queries. It is usually acceptable at CMS scale, but it will not help on high-volume paths and can hurt. Benchmark the actual hot queries, not a synthetic suite.Failure modes to instrument:
Ramp-up. The scarce skill is the intersection, not either side: developers who know Eloquent are common, developers who know Bitrix are regional, and developers who know both are few and mostly in RU/CIS markets. Assume 2–4 weeks to productivity for a competent Laravel developer new to Bitrix, longer for the reverse. Onboarding cost should be modeled as a recurring line item, not a one-time hit.
Overall TPM recommendation. Do not adopt as a dependency. If the ergonomics payoff is real for your team, adopt it as a vendored, owned, internally supported component with an explicit owner, CI coverage, a documented exit path, and a scheduled review. If none of those four commitments can be funded, build the thin repository layer in-house instead — it is less elegant and considerably cheaper to live with.
How can I help you explore Laravel packages today?