Php laravel swagger不在应用程序目录外使用控制器
我有一个控制器Php laravel swagger不在应用程序目录外使用控制器,php,laravel,swagger,Php,Laravel,Swagger,我有一个控制器ServiceBookingController,它位于laravel传统app目录之外。我正在做招摇过市的文件。它适用于App\Http\controllers目录中的控制器。这是我的控制器文件 <?php namespace Modules\Beauty\Http\Controllers\API;// here is the directory use App\Http\Controllers\Controller; use Illuminate\Http\Reques
ServiceBookingController
,它位于laravel传统app
目录之外。我正在做招摇过市的文件。它适用于App\Http\controllers
目录中的控制器。这是我的控制器文件
<?php
namespace Modules\Beauty\Http\Controllers\API;// here is the directory
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ServiceBookingController extends Controller{
/**
* @OA\Post(
* path="/beauty/list-customer-service-bookings",
* tags={"beauty_customer_bookings"},
* summary="List Customer Bookings.",
* operationId="Beauty_Customer_Bookings",
* @OA\Parameter(
* name="customer_id",
* in="query",
* description="customer id",
* required=true,
* @OA\Schema(
* type="integer",
* default="482"
* )
* ),
* @OA\Response(
* response=422,
* description="validation errors."
* ),
* @OA\Response(
* response="200",
* description="Customer Bookings."
* ),
* @OA\Response(
* response="401",
* description="auth failed."
* ),
* )
*/
public function list_customer_service_bookings(Request $request)
{
...
}
}
要自动加载模块
命名空间,您需要编辑composer.json
的自动加载部分,如下所示:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/",
"Modules\\": "modules/"
}
},
然后
运行以下命令
php artisan clear-compiled
composer dumpautoload
composer update
如果使用DarkanLine/l5 swagger,请运行以下命令:
php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"
现在,您可以打开config/l5-swagger.php:
在注释中添加自定义目录。像这样:
'annotations' => [
base_path('app'), // This is default
base_path('modules') // Add your directory
],
我希望它有用。您是否已将此命名空间添加到composer.json
?你为什么要把控制器移到别处去?@Jerodev我没有。已经完成了。您能告诉我在composer.json
文件中在哪里添加名称空间吗?这里有一篇很好的文章,介绍了如何生成API文档,并提供了一个简单的解释,可能会对您有所帮助。你好,先生!谢谢你的回答。我现在正在尝试这个解决方案。我已经尝试了这个“Modules\\”:“Modules/”
,但它仍然是一样的。最终的对象类似于“psr-4”:{“illumb\\”:“src/illumb/”,“Modules\\”:“Modules/”}
“autoload”:{“files:[“src/illumb/Foundation/helpers.php”,“src/illumb/Support/helpers.php”],“psr-4”:{“illumb\\”:“src/illumb/”,“Modules\\”:“Modules/”}},
我对最后的自动加载对象发表了评论。一切都好吗?