orchestra/support-core
Core support utilities for the Orchestra Platform, providing shared helpers, service providers, and foundational traits that other Orchestra packages build on. Lightweight, framework-agnostic glue for Laravel applications that need a consistent base for extension development.
orchestra/support-core is not a feature package — it is a bundle of commodity utilities (base service providers, reusable traits, string/array/HTML helpers, and extension contracts) that every Laravel service otherwise rewrites. The decision it informs is narrow: do we standardize that layer on this package, or maintain a thin internal helper namespace? Since most of its value overlaps illuminate/support (Str, Arr, Htmlable), the answer should be driven by coupling and maintenance cost, not capability.Adopt — or accept as a transitive foundation — when:
composer.lock as a transitive install; the work is then a constraint review and a governance decision rather than an adoption project.Look elsewhere — or hold — when:
illuminate/support covers most of this; adding a low-popularity dependency for it is a net negative.For executives — one paragraph. orchestra/support-core is a small foundation library, not a product capability. It ships the boilerplate every Laravel service rewrites — base service providers, shared traits, and string/HTML helpers — and it is the mandatory base layer for anything built on Orchestra Platform. Adopting it costs one pinned dependency and saves duplicated plumbing across teams; the v7 release simply moves the floor to Laravel 9+ and PHP 8.0+. The real decision is governance, not capability: we approve it as a scoped foundation for Orchestra-based work, wrap its helpers behind our own thin adapter, and keep the exit cost at a one-line composer require. Risk is manageable but real — single maintainer, no vendor support, zero downstream adoption — so it stays contained and never becomes an implicit platform-wide standard.
For engineering — the operating summary.
src/ between v6 and v7 and assume an undisclosed breaking-change surface in helpers and PHP minimums.^7.0 explicitly in every composer.json that inherits it, even transitively, so resolver drift is visible in the diff; sequence the bump behind the Laravel 8→9 upgrade; grep -rn 'Orchestra\\Support' app/ packages/ before and after every bump so the blast radius is a known list, not a guess.Acme\Support\Text::slug() delegating to the package). If the package is abandoned or dropped at the next Laravel major, the swap is one file — not a codebase-wide edit. Apply traits only to classes we own, and bind our own implementations to contracts rather than extending their concrete classes, so Orchestra never appears in our type signatures.illuminate/* constraints (read composer.json yourself — don’t infer from “9+”); global helper collisions from files autoloading (guard with function_exists); helper changes requiring composer dump-autoload, not config:clear; escaping behavior in HTML/string helpers being security-relevant, so write explicit regression tests for entities, quotes, and multi-byte input after the bump; and deferred-provider ordering causing BindingResolutionException on classes that clearly exist.composer why → composer show → grep the constraint → php artisan about → config:cache → one end-to-end feature test through the binding. A green suite after the bump is the verification, because v7 changes no behavior.How can I help you explore Laravel packages today?