承接 svb/service-factory-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

svb/service-factory-bundle

Composer 安装命令:

composer require svb/service-factory-bundle

包简介

Convenient way to automatically inject services into a factory without using sf service tagging.

README 文档

README

Using factories to orchestrate symfony services is usually accomplished by registering a service tag on the service and pass all services with that tag to the factory.

Since 3.4 we got this pretty little feature to ease the whole process of finding tagged services and injecting them into the factory, but it's still a bit too complicated to use this functionality.

To further improve this, we've decided to provide the AbstractServiceFactory (Factory) and the AbstractFactoryService (Service). To tell the symfony dependency injection which services inheriting AbstractFactoryService need to be added to which factories inheriting AbstractServiceFactory, all services must implement the getFactoryServiceId method returning the corresponding factory FQCN.

Installing

Just run the composer require and composer does the rest!
php composer.phar require svb/service-factory-bundle

Example service

use SVB\ServiceFactoryBundle\FactoryServiceInterface;

class TestService implements FactoryServiceInterface
{
    public static function getFactoryServiceId(): string
    {
        return TestFactory::class;
    }
}

Example factory

use SVB\ServiceFactoryBundle\AbstractServiceFactory;
use SVB\ServiceFactoryBundle\FactoryServiceInterface;

class TestFactory extends AbstractServiceFactory
{
    /**
     * @return FactoryServiceInterface[]
     */
    public function getAllServices(): array
    {
        /**
         * $this->services contains all FactoryServiceInterface inheriting
         * services that return the TestFactory FQCN on getFactoryServiceId
         */
        return $this->services;
    }
}

Continuous integration

Execute unit tests: ./phpunit --coverage-html coverage

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-05-27