angkor/laravel-support
angkor/laravel-support provides practical helpers and utilities for Laravel applications, simplifying common tasks and promoting cleaner, more consistent code. Lightweight, easy to install, and designed to integrate smoothly into existing projects.
What this actually is: angkor/laravel-support is a glue package — contracts, traits, validation rules, and a base controller that other Angkor packages depend on. That reframes the decision: this is rarely a package a team adopts deliberately. It arrives transitively when you adopt an Angkor package you actually want. The evaluation below treats both cases, but the transitive one is the realistic one.
Architecture fit: Low intrinsic value as a standalone. Every capability described (support helpers, a validator rule or two, a basic controller) is on the order of tens of lines of application code. The package earns its place only as the shared substrate of an Angkor suite. If you are not adopting other Angkor packages, the architectural fit is "unnecessary third-party surface area."
Integration feasibility: Mechanically trivial — composer require and, if enabled, Laravel package auto-discovery. The friction is not installation but inheritance: traits inject methods into your classes, contracts constrain your implementations, and a shipped base controller carries opinions (middleware, response shape, authorization defaults) that you inherit whether or not you agree with them.
Technical risk:
Key questions to resolve before commitment:
Stack fit: Composer-based Laravel application. Treat as a leaf dependency in a spike branch first; promote to production only behind a real requirement from another Angkor package.
Migration path: None required — the package is additive. The real migration risk is substitution: rewriting working application helpers and validators to use the package's equivalents. Do not do this. Consume the package only where an Angkor dependency forces it, and leave existing application code alone.
Compatibility: Run composer depends angkor/laravel-support and composer why against the app to see what pulls it in. Check the illuminate/* and php constraints against our pinned versions. Install twice — once with --prefer-lowest, once with --prefer-stable — to surface loose constraints that resolve to an incompatible Laravel version.
Sequencing:
composer.json — no caret ranges for a zero-star, pre-1.0 dependency. Record it in the dependency register with an internal owner and a review date.Maintenance: Low if pinned and used narrowly. The package is small and readable, so the maintenance burden is not in the code — it is in remembering the dependency exists when debugging an inherited method or an unexpected validation behavior.
Support: There is effectively no support model. No SLA, no vendor relationship, and with zero dependents, no community to have already hit your bug. Operationally this means: we are the support. Assign a named internal owner and document the fork procedure before adoption, not after an incident.
Scaling: Runtime cost should be negligible — helpers and traits, no heavy boot logic expected — but confirm that no validator rule performs a query or outbound call per request. The scaling concern is organizational rather than computational: every additional Angkor package multiplies the blast radius of a single upstream release.
Failure modes and mitigations:
^.Ramp-up: Roughly half a day for a mid-level Laravel engineer to read the whole package. The cost is not learning it — it is the ambient confusion of inheriting methods nobody on the team wrote. Add it to the architecture diagram and onboarding notes.
Recommendation: Do not adopt standalone for generic helpers or validators; write them locally. Adopt only as a transitive dependency of an Angkor package that has been independently justified, and gate that adoption on a confirmed compatibility matrix, an exact-version pin, a named owner, and a written fork trigger. Re-score in six months against stars, dependents, and release cadence.
How can I help you explore Laravel packages today?