# 依赖注入 框架提供了方便的依赖注入机制,可大大减少代码量提高开发效率,依赖注入使用了系统的 App 服务完成,系统中的控制器方法、路由闭包等均在依赖注入控制范围内。 [TOC] ## 控制器 控制器中的方法是系统调用的,我们可以在控制器的参数设置类型修饰,系统会自动分析而进行注入。 ``` <?php namespace app\home\controller; use system\model\News; class Entry { public function index( News $w ) { //系统会自动注入 News 至$w变量 } } ``` ## 自行调用 任何方法在执行时都可以使用App服务完成调用,系统将自动分析方法的参数。 **语法:** App::callMethod(类或对象,类方法); ``` class Entry { public function index(Entry $b ) { App::callMethod( $b, 'show' ); } public function show( ) { echo '后盾人'; } } ``` ## 路由闭包 系统会自动对路由中的闭包执行依赖注入,请参考路由器相关章节使用。 ## 函数依赖注入 ``` function a(app\home\controller\Entry $a) { $a->show(); } App::callFunction('a'); ```