Laravel-在服务提供商中需要php脚本
我对Laravel很陌生,并使用on-SO为我的助手函数实现了服务提供者 它建议: 在新生成的 php添加以下代码Laravel-在服务提供商中需要php脚本,php,laravel,laravel-5,composer-php,laravel-5.5,Php,Laravel,Laravel 5,Composer Php,Laravel 5.5,我对Laravel很陌生,并使用on-SO为我的助手函数实现了服务提供者 它建议: 在新生成的 php添加以下代码 require_once app_path('Helpers/AnythingHelper.php'); 但是,声明register方法只能用于将内容绑定到容器中: 如前所述,在register方法中,您应该 将东西绑定到服务容器中。你不应该试图 注册任何事件侦听器、路由或任何其他 寄存器方法中的功能 在我的例子中,应用程序按原样工作,在register函数中需要一条语句,因此我
require_once app_path('Helpers/AnythingHelper.php');
但是,声明register方法只能用于将内容绑定到容器中:
如前所述,在register方法中,您应该
将东西绑定到服务容器中。你不应该试图
注册任何事件侦听器、路由或任何其他
寄存器方法中的功能
在我的例子中,应用程序按原样工作,在register函数中需要一条语句,因此我的问题更多的是“最佳实践”,而不是让代码工作
问题:
这是一种好的/可接受的方法(register方法中的require语句),还是我应该将require语句移到boot方法中?如果您只在此处放置方法(而不是类),建议使用这种方法:
composer.json
中,确保将此文件添加到文件中
在自动加载中键入以下内容:
"autoload": {
// here other autoload things
"files": ["app/Helpers/AnythingHelper.php"]
},
composer
dump autoload`对于类,显然你应该使用标准的PSR-4自动加载,所以你会说,对于帮助函数之类的东西,完全放弃服务提供程序的方法,通过composer来处理,对吗?如果你有带有简单函数的文件,我看不到使用服务提供程序的任何意义,你可以使用composer自动加载这些文件。在Laravel中,对于辅助文件也会执行相同的操作。只要看一下,您就会看到
src/illumb/Foundation/helpers.php“
以这种方式加载是有意义的,我将通过composer进行处理:)但理论上假设我希望将其保留在提供的服务中,是否应该将require语句移动到boot方法?我只是想确保我正确理解了文档的内容——除了将内容(即使用应用程序的bind、singleton、instance等方法)绑定到容器之外,register方法中是否存在一个大的“no no”?默认情况下,是否应该将任何其他内容移动到引导方法?