symfonette/class-named-services

1.0.0 2016-07-08 21:04 UTC

This package is auto-updated.

Last update: 2024-09-05 03:17:47 UTC


README

Packagist Build Status StyleCI Scrutinizer Code Quality SensioLabsInsight

所有服务都可以通过完全限定类名(FQCN)访问。

安装

此项目可以通过Composer进行安装

composer require symfonette/class-named-services

独立

use Symfonette\ClassNamedServices\ContainerBuilderConfigurator;
use Symfony\Component\DependencyInjection\ContainerBuilder;

$builder = new ContainerBuilder();
$configurator = new ContainerBuilderConfigurator();

$configurator->configure($builder);

Symfony扩展包

use Symfonette\ClassNamedServices\Bundle\ClassNamedServiceBundle;
use Symfony\Component\HttpKernel\Kernel;

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        return [
            // ...
            new ClassNamedServiceBundle,
            // ...
        ];
    }
}

用法

在依赖注入定义中

# app/config/services.yml
services:
    controller_main:
        class: AppBundle\Controller\MainController
        arguments:
            - '@Symfony\Bridge\Doctrine\RegistryInterface'
            - '@Twig_Environment'

在路由定义中

# app/config/routing.yml
homepage:
    path: /
    defaults:
      _controller: AppBundle\Controller\MainController:homepage

在控制器中

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class ContactController extends Controller
{
    public function formAction()
    {
        $validator = $this->get(Validator::class);
        // ...
    }
}