微型 / 容器
PHP类和参数(数组、字符串、数字)依赖注入容器的简单实现。它消耗数组数据。
0.1.2
2021-06-13 10:54 UTC
Requires
- php: >=7.4
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的提供者。