自动加载问题的请教!~Composer and ServiceProvider

先说 Composer

1.它是用来自动加载类、包的 他这个加载 仅仅是require进去 也就是放到内存里
  1. 在laravel5中 composer.jason 里有 autoload 这个是加载不符合 psr-0 自动加载标准的一些类的 那psr-4:{"App\": "app/"} 这断代码的意思是 将 app/文件夹下的文件(是否包括子目录?)加载到内存,

再说ServiceProvider

1.他是将composer 加载进内存的那些类 进行组织(实现某种服务的方式,如数据库服务 ,将需要用到的类实例化)然后注册到IoC容器中去

请问 我上面的这些理解对么? 感谢各位的指点迷津加粗文字
已邀请:

安正超

赞同来自: JasonLaravel FiveSay

  • Composer:
    1. composer 并没有加载什么东西到内存,而是根据你的配置生成一个classmap:
      classname => 文件位置

      你可以在 vendor/composer/下看到所有生成的文件。
    2. {"App\": "app/"} 这断代码的意思是 app目录下的所有文件都是在"App"命名空间
  • ServiceProvider:
    1. 顾名思义,服务提供器,laravel框架里的每个模块都作为一个服务形式存在,目录位于vendor/laravel/framework/src/Illuminate/ 基本上每一个目录都有一个XXXServiceProvider.php,框架运行时根据app/config/app.php里的providers里指定要使用的服务调用对应的服务提供器完成每一个服务注册
    2. ioc, 通俗点解释,就像一个工具箱,出门时把你可能用到的工具(框架里的服务)放到里面(注册服务),当你在外面干活的时候(框架运行过程中)要用到某一个工具,从工具箱(ioc容器,就是App类)里取出(App::make('注册时服务名'))使用即可。

要回复问题请先登录注册