오버라이드에 크게 의존하는 프로젝트 용 재사용 가능 번들을 만듭니다. 어떤 시점에서 이상하게도 라우팅이 무시되어 작동하지 않습니다.symfony 3 재사용 할 수있는 사용자 정의 번들을위한 라우팅이 무시되었습니다.
Note: AppBundle extends MyBundle
routing.yml
my:
resource: '@MyBundle/Controller/'
type: annotation
app:
resource: '@AppBundle/Controller/'
type: annotation
SRC/MyBundle/컨트롤러/IndexController.php
<?php
namespace MyBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class IndexController extends Controller
{
/**
* Index
*
* @Route("/", name="index")
* @Method("GET")
*/
public function indexAction()
{
return $this->render('index.html.twig');
}
}
composer.json
...
"autoload": {
"psr-4": {
"AppBundle\\": "src/AppBundle",
"MyBundle\\": "src/MyBundle"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
...
하지만 여전히 NotFoundHttpException - "GET /"에 대한 경로를 찾지 못했습니다.
번들에 대한 특별한 구성이 누락 되었습니까?
업데이트 : 분명히 번들에 부모 역할을하는 것과 관련이 있습니다. getParent() 함수를 제거하면 모든 것이 예상대로 다시 작동하지만 - 번들을 재정의하려면이 함수가 필요합니다.
namespace AppBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AppBundle extends Bundle
{
public function getParent()
{
return 'MyBundle';
}
}
어떤 Symfony 버전을 사용하고 있습니까? – yceruto
3.3.10이 정확히 –
입니다. 캐시를 지우려고 했습니까? – Chausser