laminas/laminas-container-config-test

Mezzio PSR-11 容器配置测试

1.1.0 2023-12-05 11:09 UTC

README

Build Status

🇷🇺 俄罗斯公民

我们Laminas的成员来自不同的国家。我们中许多人都有在俄罗斯和乌克兰的朋友、亲戚和同事。我们中有些人出生在俄罗斯。有些人现在住在俄罗斯。我们中有些人有祖父母在二战中与法西斯作战。在这里,没有人支持法西斯主义。

我们中有一位成员有一位乌克兰亲戚,她带着儿子从家里逃了出来。由于前方道路上的轰炸,火车延误了。我们有一些朋友在防空洞里躲避。我们在空袭后焦急地等待他们的消息,空袭不分青红皂白地袭击医院、学校、幼儿园和房屋。我们不是从任何媒体上得知这些的。这是我们的亲身经历。

你们信任我们足够使用我们的程序,我们请求你们再次信任我们。我们需要帮助。走出去,抗议这场无意义的战争。停止杀戮。说“不,战争!”

🇺🇸 致俄罗斯公民

我们在Laminas来自世界各地。我们中许多人都有在俄罗斯和乌克兰的朋友、家人和同事。我们中有些人出生在俄罗斯。有些人现在住在俄罗斯。我们中有些人有祖父母在二战中与纳粹作战。在这里,没有人支持法西斯主义。

我们的团队成员中有一位乌克兰亲戚,她带着儿子逃离了家。由于前方道路上的轰炸,火车延误了。我们有一些朋友在防空洞里躲避。我们在空袭后焦急地等待他们的消息,空袭不分青红皂白地袭击医院、学校、幼儿园和房屋。我们不是从任何媒体上得知这些的。这是我们的亲身经历。

你们信任我们足够使用我们的软件。我们请求你们信任我们说出真相。我们需要你们的帮助。走出去,抗议这场无意义的战争。停止杀戮。说“停止战争!”

这个库为使用laminas-servicemanager的子集配置的配置提供了PSR-11容器的常见测试,正如Mezzio所指定。

它保证了跨多个PSR-11容器实现提供相同的基本功能,并简化了它们之间的切换。

目前我们支持

安装

运行以下命令以安装此库

$ composer require --dev laminas/laminas-container-config-test

使用常用测试

在你的库中,你需要在你的测试套件中扩展 Laminas\ContainerConfigTest\AbstractContainerTest 类并实现 createContainer 方法

protected function createContainer(array $config) : ContainerInterface;

它应该返回你的PSR-11兼容容器,使用 $config 进行配置。

然后,根据您想支持的功能,您可以将以下特性添加到您的测试用例中

  • Laminas\ContainerConfigTest\AliasTestTrait - 用于支持 aliases 配置
  • Laminas\ContainerConfigTest\DelegatorTestTrait - 用于支持 delegators 配置
  • Laminas\ContainerConfigTest\FactoryTestTrait - 用于支持 factories 配置
  • Laminas\ContainerConfigTest\InvokableTestTrait - 用于支持 invokables 配置
  • Laminas\ContainerConfigTest\ServiceTestTrait - 用于支持 services 配置
  • Laminas\ContainerConfigTest\SharedTestTrait - 用于支持 sharedshared_by_default 配置

为了提供一个与 Mezzio 兼容的容器,您应该扩展类 Laminas\ContainerConfigTest\AbstractMezzioContainerConfigTest 并实现 createContainer 方法。这个类组合了以下特性

  • Laminas\ContainerConfigTest\AliasTestTrait,
  • Laminas\ContainerConfigTest\DelegatorTestTrait,
  • Laminas\ContainerConfigTest\FactoryTestTrait,
  • Laminas\ContainerConfigTest\InvokableTestTrait,
  • Laminas\ContainerConfigTest\ServiceTestTrait.

如果您还计划支持共享服务,则测试类也应组合 SharedTestTrait

use Laminas\ContainerConfigTest\AbstractMezzioContainerConfigTest;
use Laminas\ContainerConfigTest\SharedTestTrait;

class ContainerTest extends AbstractMezzioContainerConfigTest
{
    use SharedTestTrait;
    
    protected function createContainer(array $config) : ContainerInterface
    {
        // your container configuration
    }
}