对 laravel 中服务提供者(Provider)和 门面(Facades) 的理解

  • Facades 先于 Provider 注册 所以 Facades 里的 类都可以引用 ;

  • Provider 中的 register 先于boot 执行 ;

  • 在register 中 注册新的类 singleton方法是 闭包 只执行一次 , 定制多样类 使用 bind ;

  • 创建provider  后再添加到 config/app.php的providers数组中即可 ;

  • 创建Facades 先创建一个 门面类这个类名就是新名字  需要到配置文件config/app.php中注册门面类别名;

  • 注意命名空间;

Facades 和 Provider 的关系 ?

服务提供者用于绑定一个类至容器 , 而Facades 是给这个类起个别名;

一个新的类完全可以直接通过控制器去实例化 为什么 还通过服务提供者  ?

服务容器就是解决你的依赖 , 放着容器不用 ,直接通过控制器注入, 随着项目越来越大 , 依赖越来越多 , 怎么维护 ;

其它 :

 一个类的调用 第一种方法 直接在控制器中 use命名空间后 , new 一个对象 , 第二种是在Provider 中注册一个类, 在控制器中 App::make() 实例化这个类 , 当使用Facade别名以后 , 方法调用是 别名::方法 (注意use 别名) 它会自动执行闭包 ;

发表回复

您的电子邮箱地址不会被公开。