Skip to content

Repository files navigation

Object Container

BuildingLatest Stable VersionTotal DownloadsLatest Unstable VersionLicense

Simple DI Container

requirements

  • PHP >=7.0

installation

composer require "fastd/container" -vvv

usage

using method injection

$container = newFastD\Container\Container();
$container
->injectOn('date', newMethodInjection())
->withMethod('now')
->withArguments([
newDateTime(),
]);
$obj = $container->get('date');
echo$obj->date; // (new DateTime())->format(DateTime::W3C)

using construct injection

$container = newFastD\Container\Container();
$container
->injectOn('date', ConstructorInjection::class)
->withConstruct()
->withArguments([
newDateTime(),
]);
$date = $container->get('date');
echo$obj->date; // (new DateTime())->format(DateTime::W3C)

using closure

$container = newFastD\Container\Container();
$container->add('date', function () use ($container) {
returnnewDateTime('now', $container->get('zone'));
});
$container->add('zone', function () {
returnnewDateTimeZone('UTC');
});
$dateTime = $container->get('date');
echo$obj->date; // (new DateTime('now', new DateTimeZone("UTC")))->format(DateTime::W3C)

using DI

$container = newFastD\Container\Container();
$container->add('zone', newDateTimeZone('UTC'));
$container->injectOn('date', function (DateTimeZone$dateTimeZone) {
returnnewDateTime('now', $dateTimeZone);
});
$dateTimeZone = $container->get('date'); // new DateTime('now', new DateTimeZone('UTC'));

Testing

phpunit

贡献

非常欢迎感兴趣,愿意参与其中,共同打造更好PHP生态,Swoole生态的开发者。

如果你乐于此,却又不知如何开始,可以试试下面这些事情:

联系

如果你在使用中遇到问题,请联系: bboyjanhuang@gmail.com. 微博: 编码侠

License MIT

About

FastD Container.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages