calebporzio/awesome-helpers
A collection of handy global helper functions for Laravel, created by Caleb Porzio. Drop-in utilities that simplify common PHP and Laravel tasks so you can write cleaner, more expressive code without extra boilerplate.
App\Support namespace with tests, and drop the Composer requirement. That costs an afternoon; taking the dependency costs the same afternoon plus a permanent, unowned obligation.Str::/Arr::/Collection/Number equivalents already exist, delete rather than port; Laravel has absorbed much of this genre since 2021.Consider it — as a reference implementation to mine, not a dependency to adopt — when most of these hold:
Illuminate\Support\Str, Arr, Collection, or Number on your current framework version.Support\Helpers class — ideally static methods rather than globals, or with function_exists() guards if you keep root-namespace functions.Look elsewhere — or rather, don't adopt — when:
spatie/laravel-collection-macros for collection ergonomics; otherwise a first-party App\Support namespace you control.php and laravel/framework constraints, register it as unmaintained with a review trigger at your next Laravel major, and add a conflict guard so it can't re-enter transitively.Executives: "This is a free, MIT-licensed set of PHP convenience functions from a well-known Laravel contributor — shorthand that saves our engineers some boilerplate on internal tooling. It is archived and unmaintained, so we are deliberately not taking a strategic dependency on it. The recommendation is to copy the few functions we actually need into our own codebase, with tests. Cost: under a day of engineering. Residual risk after the copy: effectively zero. No vendor contract, no roadmap commitment, no support obligation, no lock-in, and no security-tooling noise from carrying an abandoned package."
Engineering: "623 stars, single maintainer, last release January 2021, archived, zero recorded dependents. The upside is DX — collapsing three Str::/Arr:: calls into one. The downside is a frozen global-function surface in the root namespace: no PSR-4 boundary, no scoping to a module, and a redeclaration collision on a future dependency bump is a hard boot failure, not a catchable exception. Recommendation: treat it as a reference implementation, not a dependency. Inventory which helpers we'd actually call, map each to a modern native equivalent and delete rather than port where one exists, then port the survivors into app/Support/helpers.php — ideally as static methods on a namespaced class — with unit tests pinned to our supported PHP matrix. Remove the Composer requirement and add a conflict/CI guard so it can't re-enter transitively. If a team insists on the package short-term: pin the version, add it to the unmaintained-dependencies register, smoke-test on our exact PHP/Laravel versions, and set a review trigger on our next major upgrade. What would change our mind: the repo being unarchived and actively maintained with CI against current versions. Total effort is days, not weeks — which is exactly why direct adoption is the wrong trade: extraction costs about as much as the risk assessment it replaces, and eliminates the risk entirely."
How can I help you explore Laravel packages today?