evercodelab/banner-bundle
A Symfony/PHP bundle for managing banners in your application, with CRUD administration, image uploads, ordering, and template helpers for rendering banners in your views. Integrates quickly via bundle configuration and Doctrine entities.
Read this first: evercodelab/banner-bundle is a Symfony2 bundle (PHP 5.3–7.0 era, ~2014–2015), not a Laravel package. It ships no ServiceProvider, no composer.json extra.laravel, and no facades. Score 0 / 0 dependents confirms it is effectively unmaintained. Treat it as reference code to vendor or port, not a package you composer require into a modern Laravel app and expect to work.
Minimum viable path:
composer require evercodelab/banner-bundle — expect resolver failures on Laravel 9+/PHP 8+. If it installs, pin it (--with-all-dependencies) and expect Doctrine 2.4–2.6 style constraints.Entity/Banner.php (or similarly named) and Resources/config/services.yml. Those two files tell you the schema and the intended extension points. Skip the docs — they are usually stale for Symfony2 bundles.EvercodeLab\BannerBundle\BannerBundle in app/AppKernel.php, run doctrine:schema:update --force, configure the upload dir. In Laravel: extract the entity fields into a migration and skip the bundle's Doctrine wiring entirely.isActive = true, ordered by the bundle's sort column: Banner::where('position','homepage_top')->where('is_active',1)->orderBy('sort')->get(). Wrap in a BannerRepository so swapping storage later is one file.web/uploads/... path via a listener. In Laravel, replace with an UploadedFile → Storage::disk('public')->put(...) step in a BannerService, and store the relative path on the row.{{ banner('homepage_top') }}). Port it to a Blade component or @banner('homepage_top') directive that calls your repository. Return null/empty instead of throwing when a group has no banners.Cache::remember("banners.{$position}", 300, fn () => ...) and forgot on save/delete.starts_at / ends_at, filter on it in the repository rather than in the view.php artisan vendor:publish command you see in a README is wrong for this package.@ORM\ annotations and assume Doctrine's EntityManager. Either bridge with laravel-doctrine, or — better for a banner table this small — re-create it as an Eloquent model and delete the bundle's ORM layer.web/uploads/banners or %kernel.root_dir%/../web/.... Rewrite to Laravel's public/ or storage/app/public and update the stored path column accordingly.File vs Illuminate\Http\UploadedFile. The bundle's upload listener and validation will type-hint Symfony's File. Do not try to satisfy those signatures; replace the listener with your own upload step.doctrine/orm pins will conflict with Laravel's doctrine/dbal (used for column-change migrations). Isolate the bundle or vendor the code out of vendor/ and into app/.BannerPosition enum/constants immediately, otherwise typos silently produce empty sections.'en' in labels or date formatting — audit for setLocale-style calls before shipping multilingual.How can I help you explore Laravel packages today?