# laravel ## 服务提供者是什么? ## IoC 容器是什么? 容器,字面上理解就是装东西的东西。常见的变量、对象属性等都可以算是容器。一个容器能够装什么,全部取决于你对该容器的定义。当然,有这样一种容器,它存放的不是文本、数值,而是对象、对象的描述(类、接口)或者是提供对象的回调,通过这种容器,我们得以实现许多高级的功能,其中最常提到的,就是 “解耦” 、“依赖注入(DI)”。本文就从这里开始。 ## Facades 是什么? Facades 为应用的 服务容器 提供了一个「静态」 接口。Laravel 自带了很多 Facades,可以访问绝大部分功能。Laravel Facades 实际是服务容器中底层类的 「静态代理」 ,相对于传统静态方法,在使用时能够提供更加灵活、更加易于测试、更加优雅的语法。 ## Contract 是什么? Laravel 的契约是一组接口,它们由框架提供并定义了核心服务。 例如,Illuminate\Contracts\Queue\Queue 契约 定义了队列任务需要的方法,而 Illuminate\Contracts\Mail\Mailer 契约定义了发送邮件需要的方法。 ## 依赖注入的原理? 通过类的[反射](http://www.php.net/manual/zh/class.reflectionmethod.php) 对象获取具体参数, ## 什么是 Composer, 工作原理是什么? 依据composer.json中需要的包以及包的版本去[packagist](https://packagist.org/) 网站上download到本地,并且处理好依赖关系 ## disptach和event区别 # 相关文章 * [Laravel 服务提供者是如何注册的](https://www.jianshu.com/p/a15445b9567d) * [Laravel 服务容器,IoC,DI](https://learnku.com/articles/19195) * [Laravel 的 Facade 实现原理](https://learnku.com/articles/5464/the-facade-implementation-principle-of-laravel) * [Laravel 核心--Contracts 契约](https://www.jianshu.com/p/3fe865c51964)