[PHP] 项目实践中使用的IOC容器思想

Posted taoshihan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PHP] 项目实践中使用的IOC容器思想相关的知识,希望对你有一定的参考价值。

1.容器的意思就是一个全局变量,里面存了很多对象,如果要用到某个对象就从里面取,前提就是要先把对象放进去
2.控制反转就是把自己的控制权交给别人
3.这两个结合就是,把自己的控制权交给别人并且创建的对象放进一个全局变量里
4.好处就是可以灵活的修改一个对象的属性,而不需要去修改类本身的代码

项目实践:
1.Application对象的resources属性数组就是那个容器
2.getResource方法就是控制生成对象的方法,生成一个对象的控制权交给了Application
3.这里先简化的规定下,自定义的类必须有createResource静态方法来创建自己这个对象

class Application
    private $resources= array();
    public function getResource($class,$params) 
        if (!isset($this->resources[$class])) 
            $this->resources[$class] = call_user_func_array(array($class, ‘createResource‘), $params);
           
        return $this->resources[$class];
       


class User 
    private $name;
    private $age;
    public function __construct($name,$age)
        $this->name=$name;
        $this->age=$age;
       
    public static function createResource($name,$age) 
        return new self($name,$age);
       
    public function says()
        echo $this->name;
       

$app=new Application();
$user=$app->getResource("User",array("taoshihan","1000"));
$user->says();

 

以上是关于[PHP] 项目实践中使用的IOC容器思想的主要内容,如果未能解决你的问题,请参考以下文章

PHP 在Swoole中使用双IoC容器实现无污染的依赖注入

在项目实践中,如何进行容器化改造和DevOps建设?

直播 | 利用Jenkins生成Maven项目镜像及容器的实践

golang在阿里开源容器项目Pouch中的应用实践

《大道至简----软件工程实践者的思想》

实践总结 - 不可错过的Angular应用技巧