symplify/controller-autowire

此包已被废弃,不再维护。作者建议使用symfony/dependency-injection包。
此包的最新版本(v2.0.0-RC2)没有可用的许可证信息。

轻松支持自动注入控制器构造函数。

v2.0.0-RC2 2017-04-27 14:57 UTC

README

Build Status Code Coverage Downloads

此包只做两件事。但都做得很好

  • 1. 将控制器注册为服务,
  • 2. 为它们启用构造函数自动注入。

仍在想 为什么使用控制器作为服务?请查看这篇文章这篇文章

安装

composer require symplify/controller-autowire

将包添加到 AppKernel.php

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            new Symplify\ControllerAutowire\SymplifyControllerAutowireBundle(),
            // ...
        ];
    }
}

使用

class SomeController
{
    private $someClass;

    public function __construct(SomeClass $someClass)
    {
        $this->someClass = $someClass;
    }
}

用于 FrameworkBundle 的控制器?使用辅助特性!

受 Symfony 请求的启发,以及目前搁置的注入设置,以下是一些您现在可以使用的特性

use Symplify\ControllerAutowire\Controller\Routing\ControllerAwareTrait;

final class SomeController
{
    use ControllerAwareTrait;

    public function someAction()
    {
        $productRepository = $this->getDoctrine()->getRepository(Product::class);
        // ...

        return $this->redirectToRoute('my_route');
    }
}

您是否只想使用您需要的特性?

use Symplify\ControllerAutowire\Controller\Routing\ControllerRoutingTrait;

final class SomeController
{
    use ControllerRoutingTrait;

    public function someAction()
    {
        return $this->redirectToRoute('my_route');
    }
}

只需在您的 IDE 中键入 Controller*Trait 即可自动完成这些特性中的任何一个。

这就完了 :)

贡献

向主仓库发送 问题拉取请求