php 簡單ioc容器

2021-08-03 22:50:07 字數 1405 閱讀 2036

inte***ce 

supermoduleinte***ce

class

xpower

implements

supermoduleinte***ce

}/**

* 終極炸彈 (就這麼俗)

*/class

ultrabomb

implements

supermoduleinte***ce

}class

superman

}class

container

else

}public function

make($abstract, $parameters = )

array_unshift($parameters, $this);

return

call_user_func_array($this->binds[$abstract], $parameters);

}}//

建立乙個容器(後面稱作超級工廠)

$container = new

container;

// 向該 超級工廠新增超人的生產指令碼

$container->bind('superman', function($container, $modulename) ;

return new

superman($container->make($modulename));

}); //

向該 超級工廠新增超能力模組的生產指令碼

$container->bind('xpower', function($container) ;

return new

xpower;

});同上

$container->bind('ultrabomb', function($container) ;

return new

ultrabomb;

});// ******************

華麗麗的分割線

**********************

// 開始啟動生產

//相當於呼叫

$this->binds['superman']($container->make($modulename))

$superman_1 = $container->make('superman', array('xpower'));

$superman_2 = $container->make('superman', ['ultrabomb']);

print_r($superman_1);

//print_r($superman_2);

$superman_1->module->activate();

簡單實現spring中Ioc容器

spring的ioc容器是通過工廠模式 反射機制完成的。簡單來說反射機制就是我們可以通過類的名字來生成物件。比如比較常見的用法 person p person class.forname chinese newinstance 這樣子,我們可以直接通過chinese這個類的名字來構造這個物件。下面我...

自己寫個簡單的IOC容器

第一次看spring的時候,會感覺ioc好神奇阿。不需要設定值,用的時候取就可以了。那麼它是怎麼實現的呢?核心就是ioc容器。那麼它有多神秘呢額?其實很簡單,就是讀取配置檔案,生成對應的bean,再將值賦給那個bean就行了,取的時候直接用那個getbean方法去取就行了。廢話少說,我們自己來寫乙個...

IOC容器簡介

了解到spring框架的兩大核心模組 ioc容器和aop 原始碼分析首先從ioc容器開始,之後再來看aop 這一篇我們先來了解一下什麼是ioc容器,以及ioc容器的功能 1 正常開發模式 非依賴反轉 正常的,合作物件的引用或依賴關係的管理由具體物件來完成 持有被引用的物件 這導致了 高度耦合並且降低...