ph-7 / dependency-injection-container
简单的PHP 7.1+ 依赖注入容器(DIC)库。
1.0.4
2019-07-20 15:39 UTC
Requires
- php: >=7.1.0
- psr/container: ^1.0
- psr/log: ^1.0
Requires (Dev)
- phake/phake: ^3.0
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-08-29 04:59:31 UTC
README
摘要 ⏳
"P.H.'s DIC" 是一个简单轻量级的 PHP 7.1+ 依赖注入容器 库,可以帮助您轻松管理下一项伟大项目的依赖项 🎉
需求 ⚙
安装 📓
composer require ph-7/dependency-injection-container
使用 🎮
按照以下方式注册您的新的DIC(请注意,在这个例子中,我使用了 Symfony的HttpFoundation 请求)。
在第一个例子中,让我们创建一个带有 匿名类 的提供者类,该匿名类实现了 \PierreHenry\Container\Providable 接口。
use PierreHenry\Container\Container; use PierreHenry\Container\Providable; use Symfony\Component\HttpFoundation\Request; $container = new Container(); // Register your container $container->register( 'example.symfony.httprequest', new class implements Providable { public function getService(): Request { return Request::createFromGlobals(); } } ); // Retrieve the container $httpRequest = $container->get('example.symfony.httprequest'); // Use it $request = $httpRequest->request; // $_POST body params if ($request->get('get_var')) { echo '$_POST["get var"] exists'; } else { echo '"get_var" has not been requested'; }
另一个示例... 🎯
use DateTime; use DateTimeZone; use PierreHenry\Container\Container; use PierreHenry\Container\Providable; $container = new Container(); $container->register( 'stubs.date.datetime', new class implements Providable { public function getService(): DateTime { return new DateTime('now', new DateTimeZone('America/Chicago')); } } ); // Retrieve the container $date = $container->get('stubs.date.datetime'); // Use it echo $date->format('m-d-Y H:i:s');
灵感来源... 🧠
这个项目高度受到了我为另一个 侧项目 构建的 DIC 的启发。
...我是谁...? 🤔
嗨!😉 我是 Pierre-Henry Soria,"PierreHenry.be™":一位充满激情的比利时软件工程师 🇧🇪 😃
您可以通过 hi {{AT}} ph7 [[D0T]] me 与我保持联系!
激情驱动我! 🚀
热爱编程! 😊 查看我之前所做的其他令人兴奋的项目,例如 Lifyzer健康食品,它提供了大量关于您所吃食物的详细信息,并允许您扫描食品项 🌯 我引以为豪的另一个项目是8年前开始的我启动的 社交约会网站构建项目 ☀️
许可证 ⚖
在 GNU GPL v3 或更高版本下。