如影随形

影子是一个会撒谎的精灵,它在虚空中流浪和等待被发现之间;在存在与不存在之间....

您现在的位置是:首页>laravel

依赖注入简单解读

发布时间:2019-04-06编辑:w 浏览(2510)

    <?php
    namespace PhpTest;
    
    class Baz{
        protected $bar;
    
        public function __construct(Bar $bar)
        {
            $this->bar = $bar;
        }
    }
    
    class Bar{}
    
    class Foo
    {
        protected $baz;
        protected $bac;
        protected $bar;
    
        public function __construct($bac='wk', Bar $bar, Baz $baz)
        {
            $this->bac = $bac;
            $this->bar = $bar;
            $this->baz = $baz;
    
        }
    }

    创建一个php文件,类Foo类中依赖两个类Bar 和Baz

    如果直接new这个Foo类就会报错,你就要写一大堆的代码才能正确使用,这个时候你就要实现这个依赖注入关系,不管new哪个类就可以简单的调用;

    创建app类,使用的时候传入要类的namespace,就像这样:

    $class = 'PhpTest\Foo';
    
    
    $app = new App();
    $object = $app->build($class);
    
    var_dump($object);

    App类的实现就是依赖注入的内部实现

    在App类的内部最重要的是php内置的反射类ReflectionClass

    具体完整的代码实现:

    https://github.com/wangke568/dependencyInjection

关键字词:laravel php 依赖注入

上一篇: 什么是JWT

下一篇: laravel 快速开发模板