devcoder-xyz/php-dependency-injection

简单的PSR-11 PHP依赖注入

1.0.0 2021-01-29 13:03 UTC

This package is auto-updated.

Last update: 2024-09-17 16:41:45 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

所需PHP版本 7.3

如何使用?

// services.php
<?php

use Psr\Container\ContainerInterface;

return [
    'database.host' => '127.0.0.1',
    'database.port' => null,
    'database.name' => '',
    'database.user' => 'root',
    'database.password' => null,
    'google.key' => 'YQ4FcwaXD165Xm72lx53qzzNzkz7AUUN',
    PDO::class => static function (ContainerInterface $container) {
        return new PDO(
            sprintf('mysql:host=%s;dbname=%s;', $container->get('database.host'), $container->get('database.name')),
            $container->get('database.user'),
            $container->get('database.password'),
            [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
        );
    },
];
<?php

use DevCoder\DependencyInjection\Container;

$services = require 'services.php';
$container = new Container($services);

var_dump($container->get(PDO:class));
// object(PDO)[18]


var_dump($container->get('google.key'));
// YQ4FcwaXD165Xm72lx53qzzNzkz7AUUN

非常适合小型项目,简单易用! https://github.com/devcoder-xyz/php-dependency-injection

我们如何改进这个对象?

  • 添加自动绑定选项以自动解析构造函数参数