EC-CUBE4 特定のルート除外して特定のルートにプレフィックスをつける方法
app/config/eccube/routes.yaml
controllers:
resource: ../../src/Eccube/Controller/
type: annotation
customize_controllers:
- resource: ../../app/Customize/Controller/
+ resource: ../../app/Customize/Controller/**/**
type: annotation
+ exclude: '../../app/Customize/Controller/Api/'
+ customize_api_controllers:
+ resource: ../../app/Customize/Controller/Api
+ type: annotation
+ prefix: /v1
+ name_prefix: v1_api_
exclude
を記述しなかった場合、customize_controllers
の定義で1つ、customize_api_controllers
の定義で一つ(プレフィックス付き)の2つが、ルーターに登録されてしまう。
例えば、以下のようなルートを追加した場合。
<?php
declare(strict_types=1);
namespace Customize\Controller\Api;
use Eccube\Controller\AbstractController;
use Eccube\Entity\Member;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
class MeController extends AbstractController
{
/**
* @Route("/me", name="me", methods={"GET"}, condition="request.headers.get('Accept') === 'application/json'")
*/
public function me(): JsonResponse
{
$user = $this->getUser();
if ($user === null) {
return $this->json([
'logged_in' => false,
'member_id' => null,
]);
}
assert($user instanceof Member);
return $this->json([
'logged_in' => true,
'member_id' => $user->getId(),
]);
}
}
先ほどの exclude
の記述がない場合は、下記画像の左側のように、2個のルートが登録されます。
exclude
の記述がある場合は、下記画像の側のようになります。
Author And Source
この問題について(EC-CUBE4 特定のルート除外して特定のルートにプレフィックスをつける方法), 我々は、より多くの情報をここで見つけました https://qiita.com/applexco/items/e2a10fe5f8b6cecf4005著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .