modera/mjr-theme-integration-bundle
Symfony bundle that integrates the MJR theme into your application, handling theme registration, asset and template wiring, and configuration so you can apply a consistent look and feel with minimal setup. Useful for Modera-based projects seeking a ready-made theme integration.
Architecture fit. The critical fact a TPM needs before any planning: this is a Symfony bundle, catalogued here as a Laravel/PHP package. The *Bundle suffix is the tell. It wires the MJR (Modera) ExtJS admin theme — compiled JS/CSS assets, Twig layout partials, and a DependencyInjection extension — into a Symfony kernel. It has no service provider, no facade, no config/*.php publish tags, and no Blade views. Against our Laravel stack the impedance is total, not a matter of minor adaptation. Even on Symfony its value is glue; the substance (theme SCSS/JS, ExtJS overrides, layout templates) lives in published assets, and the actionable source is a [READ-ONLY] monorepo split of unknown vintage. This is a roadmap input, not an integration candidate.
Integration feasibility. Low as a Composer dependency; moderate only as an asset quarry. A 2016-era constraint set (PHP 5.5+, Symfony 2.8/3.x, sibling Modera bundles pinned to the same window) will not resolve against PHP 8.x, and --ignore-platform-reqs only moves the failure to runtime. The realistic path is reading the repo as reference — extract theme assets, understand the ExtJS overrides, and re-home the container/config glue idiomatically if we want any of it. This is a port, not an install.
Technical risk. High across every dimension that matters to a PM:
Ext.define, class system, layout managers) are a niche skillset. Hiring and code review are both expensive, and we have no internal depth on record.Key questions for the team.
PM decision: No adopt. This is a low-stakes call, not a trade-off. Log it as Hold/Avoid on the tech radar so the next person does not rediscover it.
Stack fit. Poor vs. Laravel (no service provider, no publish tags, no Blade), weak vs. modern Symfony, acceptable only as a static asset source. Every viable path is a salvage operation, and the TPM's job is to keep the scope from drifting into "just make it work."
Migration path — frame as a one-time extraction, not a dependency.
Resources/ (public assets, Twig templates, SCSS), DependencyInjection/ (which config knobs exist), and composer.json (exact transitive assumptions). Confirm whether assets are originals or references into the monorepo.resources/ tree. Do not add the bundle to composer.json. Vendor-pinning abandoned code creates upgrade deadlock we would own forever.Compatibility. Assume PHP 8.x incompatibility until proven otherwise. Run PHPStan/lint on any PHP we intend to keep; expect to discard most of it. Asset-level reuse (SCSS, JS, templates) is version-tolerant by comparison.
Sequencing — with explicit gates.
Tech-radar entry (governance artifact). Record this as a canonical "Hold — do not adopt" precedent: maintained releases, dependents, and a supported-framework match are required before we add a dependency. This entry earns its keep even if we never touch the code.
Maintenance. Effectively zero upstream, and the read-only split means we cannot even upstream a patch. Budget it as permanently forked, internally owned code — or, preferably, as a one-time asset harvest with no ongoing dependency. Either way, the run-rate cost lands on us.
Support. No maintainers, no issue tracker on this repo, no security advisories. Internal support depends entirely on whether anyone has ExtJS depth; if not, the first production incident in the admin UI is an unbounded research task. That is a staffing risk, not just a technical one.
Scaling. The PHP side is negligible — container glue and asset publishing, not a runtime hot path. The real scaling question is frontend: an ExtJS 4/5 admin ships a large single-page bundle, has heavyweight client-side rendering, and does not benefit from modern code-splitting or SSR. That is a UX and performance ceiling, not a throughput problem, but it is a ceiling we would inherit.
Failure modes (risk register).
--ignore-platform-reqs defers the failure to runtime.Ramp-up. Moderate for asset extraction (hours to days); steep for anyone modifying ExtJS internals (weeks, and only with prior ExtJS experience). The PHP glue requires almost no ramp-up because the correct move is not to adopt it. Recommend framing the effort to stakeholders as "salvage the theme, reject the bundle," with the Sencha licensing gate before any engineering time is committed.
Roadmap items this assessment moves forward:
Bottom line for stakeholders: an unsupported dependency in an administrative surface, an ExtJS commercial licensing and skills obligation, and a theming layer we would have to fork and own outright within months. That is a build cost disguised as a buy. No integration work, no spike beyond the timebox, no evaluation license. Log it as Hold/Avoid with the reasoning above.
How can I help you explore Laravel packages today?