sumocoders/framework-core-bundle
A Symfony core bundle by SumoCoders providing reusable framework components, base services, and shared configuration to help standardize and speed up application development across projects.
Know what this is first: sumocoders/FrameworkCoreBundle is a Symfony bundle, not a Laravel package. It ships the shared "framework core" that SumoCoders uses across its Symfony applications: base controller/service/form-type classes, Twig layout extensions, form types, and small UI components. There is no Illuminate\Support\ServiceProvider, so you cannot composer require it into a Laravel app and expect anything to boot.
If you are on Symfony (or evaluating a codebase that uses it):
composer require sumocoders/framework-core-bundleconfig/bundles.php:
SumoCoders\FrameworkCoreBundle\FrameworkCoreBundle::class => ['all' => true],
# config/routes/framework_core.yaml
framework_core:
resource: '@FrameworkCoreBundle/config/routes.yaml'
bin/console cache:clear) and load any page that extends the bundle's base layout.First use case — the new quick search (v19.2.0): if your app's layout extends the bundle's base template, the header search box should render automatically. Type in it, hit the keyboard shortcut, and confirm results appear. That single interaction is the fastest smoke test that the bundle is wired correctly (templates + routing + assets + firewall all at once).
If you are on Laravel: treat this as a reference implementation, not a dependency. Skim BaseController, BaseService, and the form types to see how they factor shared behaviour, then re-implement the parts you want (global quick search, paginator helpers, base form type) with Laravel equivalents — a Blade component, a Livewire/Alpine search modal, and a FormRequest-style base class.
Extending the base classes. The bundle's value is inheritance, not composition. Controllers extend BaseController to get the shared helpers (redirect-with-flash, pagination plumbing, breadcrumb/menu registration). Services extend BaseService for common logger/repository access. Form types extend BaseFormType to inherit the bundle's default options and validation wiring. Do this consistently — mixing in raw AbstractController breaks the conventions other bundle features assume.
Quick search integration (v19.2.0). The feature is a global search entry point in the layout, so the integration surface is small:
{% extends '@FrameworkCoreBundle/layout.html.twig' %} or your app layout that extends it). If you copied the layout into your app instead of extending, the search box will not appear — port the new partial across.public/build is the most common reason "the box renders but nothing happens".Service and DI conventions. Use autowiring and the bundle's interface aliases rather than instantiating helpers manually; several bundle services are designed to be decorated or replaced. When you need different behaviour, prefer decorating an existing service over subclassing a controller.
Template overrides. Override individual templates via templates/bundles/FrameworkCoreBundle/... rather than forking the whole bundle. This keeps you on the upgrade path — important because the bundle cuts frequent minor releases.
Upgrade cadence. Versions are released as vX.Y.Z minors with changelog entries. Pin to ^19.2 in composer.json, read the changelog per bump, and run your smoke test (page load + quick search + a form submit) after each one.
config/*.php publish tags. If a Laravel developer is asked to "add this package", clarify scope before writing code — the realistic outcome is a port, not an install.cache:clear alone does not rebuild Encore/AssetMapper output.{% extends %} chains intact and diff overrides on every minor bump.curl? (5) does the firewall allow it?How can I help you explore Laravel packages today?