2016-11-09 121 views
2

因此,我使用laravel 5.3,并且刚刚为我创建的CMS创建了我的第一个裸包。 它正常工作,但是我不希望被手动添加到composer.json自动加载,我想这个自动从一拖进行拖放或在管理方面如选择选项:自动添加ServiceProviders laravel到config/app.php和自动加载配置

"autoload": { 
      "classmap": [ 
       "database" 
      ], 
      "psr-4": { 
       "App\\": "app/", 
       "Corium\\MediaManager\\" : "packages/corium/mediaManager/src" 
      } 
     }, 

然后我想要:Corium\MediaManager\MediaManagerServiceProvider::class,添加到config/app.php提供程序数组中,而最终用户不需要输入后端代码。这样做的最佳方式是什么,因为我无法解决如何让这个工作。 谢谢

回答

1

使用应用程序注册服务应该几乎总是在服务提供者中完成。如您所知,服务提供商已在config/app.php中注册,因此您必须手动注册至少一个提供商。但是,在该提供程序中,您可以访问作为应用程序实例的app属性,您可以调用register方法注册其他提供程序。通过这种方式,您可以预先注册一家提供商,并在代码中需要时注册其他提供商。

关于Writing Service Providers的文档应该让你开始。

+0

好吧,如果我有一个拱起包装服务提供者,我应该然后存储什么其他包我有一个数据库表,并创建一个循环运行并注册或有更好的方式吗? – RPSystems

+0

我可能会把他们放在另一个配置文件里面的config目录或类似的东西。但这完全取决于你。仍然不确定为什么要动态加载服务,我觉得你的CMS运行速度会更快,只需要注册所有服务,并且仍然只使用你需要的服务。 – samrap