微型/容器

PHP类和参数(数组、字符串、数字)依赖注入容器的简单实现。它消耗数组数据。

0.1.2 2021-06-13 10:54 UTC

This package is auto-updated.

Last update: 2024-09-24 20:46:34 UTC


README

依赖注入容器

警告!

这仍然处于实验阶段。我们不知道目前是否已经将所有内容整合在一起。还需要进行大量的测试。

目的

此软件包提供了一个简单的依赖注入容器。它基于注入的数据(PHP数组)运行。用于解释连接的语法可以通过注入语法类实例来操作。

 
 
 
 
 
 
 

安装

使用Composer

composer require miniature/di_container

下载包

解压到名为微型的目录中。将以下内容添加到您的自动加载中:

<?php

function miniature_autoload($class)
{
    $fileName = str_replace('\\', '/', realpath(__DIR__) . '/' . $class ) . '.php';
    if (preg_match('/^(.*\/Miniature)\/(\w+)\/((\w+\/)*)(\w+)\.php/', $fileName)) {
        $newFileName = preg_replace(
            '/^(.*\/Miniature)\/(\w+)\/((\w+\/)*)(\w+)\.php/',
            '$1/$2/src/$3$5.php',
            $fileName
        );
        if (is_file($newFileName)) {
            require $newFileName;
        }
    }
}
spl_autoload_register('miniature_autoload');

您可能需要通过在filepath()语句中设置相对路径来调整filePath的文件路径连接。

实例化

$myDiContainer = (new \Miniature\DiContainer\DiContainer())
    ->readMappings($configArray);

语法

有关语法的更多信息,请点击这里

覆盖语法

可以通过注入\Miniature\DiContainer\Syntax\MapperAbstract的实现来覆盖语法。类\Miniature\DiContainer\Syntax\MapperSymfonyStyle是它如何工作的示例。

$myDiContainer = (
    new \Miniature\DiContainer\DiContainer(
            new \Miniature\DiContainer\Syntax\MapperSymfonyStyle()
        )
    )->readMappings($configArray);

提供映射

这是您绝对的选择,映射从何而来。

我们不推荐在上下文中使用Miniature\Component\Reader\Config类,因为它可能在未来被移动。

如果您想利用Reader基于环境的覆盖的优点,您可以考虑使用public结合环境中的可用性来创建一个灰盒/白盒行为组件作为您的DI-Mapping的提供者。