yokai/dependency-injection 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yokai/dependency-injection

最新稳定版本:v1.5

Composer 安装命令:

composer require yokai/dependency-injection

包简介

Provide util classes to manipulate Dependency Injection in Symfony

README 文档

README

Installation

$ php composer.phar require yokai/dependency-injection

Compiler Pass

<?php

namespace AppBundle;

use Yokai\DependencyInjection\CompilerPass\ArgumentRegisterTaggedServicesCompilerPass;
use Yokai\DependencyInjection\CompilerPass\AdderRegisterTaggedServicesCompilerPass;
use Yokai\DependencyInjection\CompilerPass\SetterRegisterTaggedServicesCompilerPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;

class AppBundle extends Bundle
{
    public function build(ContainerBuilder $container)
    {
        $container
            ->addCompilerPass(
                new ArgumentRegisterTaggedServicesCompilerPass(
                    'some_service_id',
                    'some_tag_name',
                    'An\Optional\Interface\To\Check',
                    0
                )
            )
            ->addCompilerPass(
                new AdderRegisterTaggedServicesCompilerPass(
                    'some_service_id',
                    'some_tag_name',
                    'An\Optional\Interface\To\Check',
                    'addDependency'
                )
            )
            ->addCompilerPass(
                new SetterRegisterTaggedServicesCompilerPass(
                    'some_service_id',
                    'some_tag_name',
                    'An\Optional\Interface\To\Check',
                    'setDependencies'
                )
            )
        ;
    }
}

ArgumentRegisterTaggedServicesCompilerPass

This compiler pass will :

  • check for the service (first argument) existence (throw LogicException if not)
  • find services tagged with tag (second argument)
  • if provided, check every service against an interface (third argument) (throw LogicException if not)
  • sort these references base on a priority attribute
  • replace an argument (fourth argument) of your service definition with the sorted references

AdderRegisterTaggedServicesCompilerPass

This compiler pass will :

  • check for the service (first argument) existence (throw LogicException if not)
  • find services tagged with tag (second argument)
  • if provided, check every service against an interface (third argument) (throw LogicException if not)
  • sort these references base on a priority attribute
  • call a method (fourth argument) for each sorted references

SetterRegisterTaggedServicesCompilerPass

This compiler pass will :

  • check for the service (first argument) existence (throw LogicException if not)
  • find services tagged with tag (second argument)
  • if provided, check every service against an interface (third argument) (throw LogicException if not)
  • sort these references base on a priority attribute
  • call a method (fourth argument) with all sorted references

MIT License

License can be found here.

Authors

The bundle was originally created by Yann Eugoné. See the list of contributors.

统计信息

  • 总下载量: 84.91k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 1
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-06-01