wouterj / bundleless
Removing the bundle from AppBundle in Symfony
Requires
- symfony/http-kernel: ~2.3
This package is auto-updated.
Last update: 2024-10-25 01:14:47 UTC
README
This is a very simple proof of concept. This package basically provides a bundle
class which can be used to create "virtual" bundles. Virtual bundles only
exists for the Symfony kernel, but for you it's just a package which uses
bundle conventions (like automatic mapping for Entity/
).
This can be used to remove the "bundle" from AppBundle. Let me tell you how to get this working for your application.
Install
This is pretty simple (if you're using Composer):
$ composer require wouterj/bundleless:1.*@dev
Edit
Use the new WouterJ\Bundleless\AppFocusedKernel
as parent of your AppBundle
:
// app/AppKernel.php use WouterJ\Bundleless\AppFocusedKernel; // ... class AppKernel extends AppFocusedKernel { }
Then, remove that ugly AppBundle
register line from your AppKernel
.
Bundeless will take care of it now.
// app/AppKernel.php // ... public function registerBundles() { $bundles = array( // ... // comment or remove // new AppBundle\AppBundle(); }
Use
You're already ready! You should move your application code outside of the
AppBundle
by removing the namespace and putting it in src/
directly. For
instance:
// src/Controller/StaticController.php namespace App\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class StaticController extends Controller { /** * @Route("/") */ public function homepageAction() { return $this->render('static/homepage.html.twig'); } }
# app/config/routing.yml app: resource: "@App/Controller" type: annotation
That's it. Apart from the template file, you now have a working homepage!
Customize
The AppBundle is created using the Kernel#getAppBundle()
method. Override
this method in your AppKernel
to customize it.
License
This project is released under the MIT license, it's just 2 files anyway.