da2e/

simple-factory

实现并提供了简单工厂(设计模式)功能的微型包。

v1.0.0 2017-05-21 16:39 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:19:51 UTC


README

Build Status

SimpleFactory是一个实现简单工厂设计模式并提供其功能的微型包。

如何使用

<?php

use Da2e\SimpleFactory\SimpleFactory;

$factory = new SimpleFactory();
$factory->create(TheObjectYouNeedToCreate::class, ['optional', 'array', 'of', 'constructor', 'args']);

构造函数参数的顺序很重要!

为了自动化创建具有相同构造函数参数的同类对象的过程,您可以为SimpleFactory创建一个包装器,并将所需的参数传递给其构造函数,如下所示

<?php

use Da2e\SimpleFactory\SimpleFactory;

class MySimpleFactory extends SimpleFactory
{
    private $dependency;
    
    public function __construct($dependency)
    {
        $this->dependency = $dependency;
    }
    
    /**
     * {@inheritdoc}
     */
    public function create(string $class, array $constructorArgs = [])
    {
        parent::create($class, array_merge([$this->dependency], $constructorArgs));
    }
}

$factory = new MySimpleFactory('foobar');
$factory->create(TheObjectYouNeedToCreate1::class);
$factory->create(TheObjectYouNeedToCreate2::class);
$factory->create(TheObjectYouNeedToCreate3::class);

软件要求

  • PHP >= 7.0

如何安装

composer require da2e/simple-factory "1.*"

许可协议

此包受MIT许可证约束。