项目作者: deprecated-packages

项目描述 :
[DEPRECATED] Use Controller autowiring by default since Symfony 3.3
高级语言: PHP
项目地址: git://github.com/deprecated-packages/ControllerAutowire.git
创建时间: 2015-11-30T13:27:13Z
项目社区:https://github.com/deprecated-packages/ControllerAutowire

开源协议:MIT License

下载


Controller Autowire - Deprecated, in core of Symfony 3.3+


Build Status
Code Coverage
Downloads

This bundle does only 2 things. But does them well:

  • 1. registers controllers as services and
  • 2. enables constructor autowiring for them

Still wondering why use controller as services? Check this and
this article.

Install

  1. composer require symplify/controller-autowire

Add bundle to AppKernel.php:

  1. class AppKernel extends Kernel
  2. {
  3. public function registerBundles()
  4. {
  5. $bundles = [
  6. new Symplify\ControllerAutowire\SymplifyControllerAutowireBundle(),
  7. // ...
  8. ];
  9. }
  10. }

Usage

  1. class SomeController
  2. {
  3. private $someClass;
  4. public function __construct(SomeClass $someClass)
  5. {
  6. $this->someClass = $someClass;
  7. }
  8. }

Used to FrameworkBundle’s controller? Use helpers traits!

Inspired by pull requests to Symfony and setter injection that are currently on-hold, here are the traits you can use right now:

  1. use Symplify\ControllerAutowire\Controller\Routing\ControllerAwareTrait;
  2. final class SomeController
  3. {
  4. use ControllerAwareTrait;
  5. public function someAction()
  6. {
  7. $productRepository = $this->getDoctrine()->getRepository(Product::class);
  8. // ...
  9. return $this->redirectToRoute('my_route');
  10. }
  11. }

Do you prefer only traits you use?

  1. use Symplify\ControllerAutowire\Controller\Routing\ControllerRoutingTrait;
  2. final class SomeController
  3. {
  4. use ControllerRoutingTrait;
  5. public function someAction()
  6. {
  7. return $this->redirectToRoute('my_route');
  8. }
  9. }

Just type Controller*Trait in your IDE to autocomplete any of these traits.

That’s all :)

Contributing

Send issue or pull-request to main repository.