ibexa/code-style
Ibexa Code Style packages the coding standards used across Ibexa projects, bundling PHP CS Fixer configuration plus related CI, IDE, Git hook, and GitHub contribution templates. Install it as a dev dependency with a tilde constraint and reuse the Ibexa ruleset in your own projects.
Architecture fit: ibexa/code-style is a development-time coding-standards package, not a Laravel runtime dependency. It fits at the Composer dev-dependency and PHP CS Fixer configuration layer via Ibexa\CodeStyle\PhpCsFixer\InternalConfigFactory. It is framework-agnostic and can be used in Laravel projects, but it is not Laravel-native: Laravel teams typically use Pint, which also wraps PHP CS Fixer. Adopting this package means replacing or supplementing Pint with an Ibexa-maintained ruleset, so architectural fit is strong only if Ibexa DXP alignment or Ibexa-style enterprise standards are strategic.
Integration feasibility: Technically straightforward. A TPM can sponsor a small pilot: add composer req --dev ibexa/code-style:~2.3.0, create .php-cs-fixer.php, configure Finder, optionally add project rules with withRules(), and enable parallel execution with runInParallel(). CI integration is a standard vendor/bin/php-cs-fixer fix --dry-run --diff gate. Effort is low in engineering hours; the real effort is governance, legal review, and deciding whether to standardize on this ruleset versus Pint.
Technical risk: The primary risk is licensing. GitHub reports NOASSERTION; the README describes a dual-license structure involving the Ibexa Business Use License and GPLv2. The Ibexa BUL is tied to an Ibexa DXP subscription, and GPLv2 carries copyleft obligations. Legal review is mandatory before adoption, even for a dev-only tool. Secondary risks: very low external adoption (0 stars, 0 dependents), an Ibexa-centric maintenance model, BC guaranteed only within a minor release rather than SemVer, dependency churn from friendsofphp/php-cs-fixer bumps, potential Composer conflicts with Pint or other tools pinning PHP CS Fixer, and formatting churn when rulesets change. The v2.3.1 release notes show active maintenance but also confirm the package moves in lockstep with Ibexa DXP, PHPUnit 11, and Symfony 8 concerns.
Key questions: Are we an Ibexa DXP customer, or is Ibexa compatibility a real requirement? Has legal approved the Ibexa BUL/GPLv2 licensing for internal dev tooling and any redistribution? Do we standardize on Laravel Pint, Ibexa Code Style, or a thin internal wrapper? Which PHP, Laravel, PHPUnit, and PHP CS Fixer versions must be supported? Who owns upgrades and formatting PRs? Will CI treat style as blocking or advisory? Do we need the PHPUnit 11 rule set now, or is that premature? What is the support path if upstream stalls?
Stack fit: Best fit is PHP projects, including Laravel, that already use PHP CS Fixer and want a preconfigured, maintainable ruleset. Weak fit is a Laravel team already standardized on Pint with no Ibexa DXP dependency; in that case this package adds a second style authority and Composer overlap risk. It should be treated as a dev/CI tool only, never as a production runtime dependency.
Migration path: Start with a report-only audit in one representative repository. Compare current Pint or .php-cs-fixer.php output against the Ibexa ruleset, quantify violations, and decide whether the delta is acceptable. If approved, adopt on new code first, baseline existing violations, and fix incrementally. Avoid a big-bang reformat unless the team explicitly schedules it. A TPM should frame this as a bounded pilot, not an enterprise-wide mandate, until legal and maintenance ownership are settled.
Compatibility: Pin with a tilde constraint as the README recommends, e.g. ~2.3.0, and commit the lockfile. Verify PHP version compatibility with PHP CS Fixer 3.90-era constraints, CI images, and editor integrations. Check Composer resolution against Laravel Pint and any other tool requiring friendsofphp/php-cs-fixer; two style tools can coexist technically but should not both act as blocking gates. The package does not promise SemVer BC across minor releases, so minor upgrades need review.
Sequencing: 1) Legal/license review and adoption decision. 2) Select one pilot repo with a clear owner. 3) Add the dev dependency with a tilde constraint and lock it. 4) Create the .php-cs-fixer.php config and run dry-run metrics. 5) Add CI in non-blocking mode, then make it blocking after baseline cleanup. 6) Add optional pre-commit hooks and IDE setup. 7) Document the command, upgrade policy, and exception process. 8) Reassess after one quarter before expanding to more repos.
Maintenance: Upstream appears active, but it is maintained for Ibexa’s ecosystem. We would own upgrade testing, Composer conflict resolution, and formatting churn in our repos. Minor releases can change configuration, so each bump needs a dry-run review and possibly a dedicated formatting PR. Avoid forking unless Ibexa alignment becomes a hard requirement and upstream responsiveness fails.
Support: Support is GitHub-based and community/vendor-driven; commercial support likely depends on an Ibexa DXP subscription. Internally, a TPM should assign a tooling owner, publish a runbook, and define an escalation path for blocked CI. Legal support is also part of the operating model because of the custom/GPL licensing.
Scaling: The package itself does not scale in production because it is dev-only. For large codebases, runInParallel() helps PHP CS Fixer runtime. For multi-repo adoption, a small internal wrapper or shared config template can standardize invocation while keeping the Ibexa dependency pinned. Budget CI minutes and developer time for periodic reformatting.
Failure modes: License rejection after engineering investment; Composer conflicts with Pint or PHP CS Fixer versions; CI breakage after an upstream minor release; mass formatting diffs that obscure real changes; ruleset drift from Laravel/Pint conventions; upstream abandonment or reduced maintenance; developer frustration if style gates block urgent fixes without an exception process. Release metadata should also be validated against actual tags before planning upgrades.
Ramp-up: Low for developers already familiar with PHP CS Fixer; expect one to two hours for setup, command usage, editor integration, and pre-commit behavior. The TPM’s leverage is in packaging the decision and guardrails: pilot scope, legal sign-off, pinned versions, CI policy, upgrade cadence, and a clear rule that unrelated reformatting is not mixed into feature PRs. Without those guardrails, the package is easy to install but hard to operate as a durable standard.
How can I help you explore Laravel packages today?