ph-7/dependency-injection-container

简单的PHP 7.1+ 依赖注入容器(DIC)库。

1.0.4 2019-07-20 15:39 UTC

This package is auto-updated.

Last update: 2024-08-29 04:59:31 UTC


README

摘要 ⏳

"P.H.'s DIC" 是一个简单轻量级的 PHP 7.1+ 依赖注入容器 库,可以帮助您轻松管理下一项伟大项目的依赖项 🎉

PHP Dependency Injection Container

需求 ⚙

安装 📓

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

嗨!😉 我是 Pierre-Henry Soria,"PierreHenry.be™":一位充满激情的比利时软件工程师 🇧🇪 😃

您可以通过 hi {{AT}} ph7 [[D0T]] me 与我保持联系!

激情驱动我! 🚀

热爱编程! 😊 查看我之前所做的其他令人兴奋的项目,例如 Lifyzer健康食品,它提供了大量关于您所吃食物的详细信息,并允许您扫描食品项 🌯 我引以为豪的另一个项目是8年前开始的我启动的 社交约会网站构建项目 ☀️

许可证 ⚖

GNU GPL v3 或更高版本下。