我用路线创建了一个laravel软件包。我想做类似于Laravel身份验证支架Auth::routes()
的操作,将它们注入到要包含它们的任何文件中(即api.php
或web.php
)。
我当前正在使用
public function boot()
{
...
$this->loadRoutesFrom(__DIR__.'/routes/api.php');
...
}
但是这使路由可以在任何地方使用,而我不希望这样。
我知道我应该使用Service Container
,但这是我的第一个程序包,也是第一次创建自己的服务提供程序,因此我不太确定该怎么做,也找不到有关如何使用它们的文档。路线。
相反,我希望能够执行以下操作:
//routes/api.php
Route::group(['prefix'=>'v1', 'middleware:auth-api'], function(){
Logging::routes(); //<-----
...
});
答案 0 :(得分:1)
简单的解决方案,创建一个具有静态方法的类,该方法声明您的路线。
// your/package/Logging.php
class Logging
{
public static method routes()
{
...your routes...
}
}
// routes/web.php
use Your/Package/Logging;
Logging::routes();