• 技术文章 >后端开发 >php教程

    一文聊聊php中的DI依赖注入

    青灯夜游青灯夜游2022-08-25 10:51:01转载1701
    什么是 DI依赖注入?下面本篇文章就来带大家深入了解一下php中的DI依赖注入,希望对大家有所帮助!

    php入门到就业线上直播课:进入学习

    什么是 DI / 依赖注入

    依赖注入出现的原因

    <?php
    class container
    {
        private $adapter;
    
        public function __construct()
        {
            $this->adapter = new adapter();
        }
    }

    简单的依赖注入

    <?php
    class container
    {
        private $adapter;
    
        public function __construct(adapter $adapter)
        {
            $this->adapter = $adapter;
        }
    }

    高阶的依赖注入

    <?php
    class container
    {
        public $instance = [];
    
        public function __set($name, $value)
        {
            $this->instance[$name] = $value;
        }
    }
    
    $container = new container();
    
    $container->adapter = new adapter();
    $container->autofelix = new autofelix();

    依赖注入的应用

    <?php
    class container
    {
        public $instance = [];
    
        public function __set($name, $value)
        {
            $this->instance[$name] = $value;
        }
    }
    
    class adapter
    {
        public $name = '我是调度器';
    }
    
    $container = new container();
    $container->adapter = new adapter();
    
    class autofelix
    {
        private $container;
    
        public function __construct(container $container)
        {
            $this->container = $container;
        }
    
        public function who($class)
        {
            return $this->container->instance[$class]->name;
        }
    }
    
    $autofelix = new autofelix($container);
    
    $who = $autofelix->who('adapter');
    
    var_dump($who); //我是调度器

    依赖注入高阶优化

    <?php
    $container = new container();
    $container->adapter = new adapter();
    
    //高阶优化
    $container = new container();
    $container->adapter = function () {
        return new adapter();
    };

    推荐学习:《PHP视频教程

    以上就是一文聊聊php中的DI依赖注入的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php
    上一篇:实例详解PHP如何在两个大文件中找出相同记录 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• php数组里面不能放中文吗• php数组怎么遍历替换某一字段(键名)的值• php怎么利用if语句判断值在不在数组里• php交换数组键与值用什么函数• 将数组分成几段的php函数是什么• php二维数组中指定字段怎么求和
    1/1

    PHP中文网