代码之家  ›  专栏  ›  技术社区  ›  ptmr.io

忽略自定义可重用捆绑包的Symfony 3路由

  •  2
  • ptmr.io  · 技术社区  · 7 年前

    我正在为我的项目创建一个可重用的包,它严重依赖于覆盖。奇怪的是,在某个时候,我的路线被忽视了,我无法让它工作。

    Note: AppBundle extends MyBundle

    路由。yml公司

    my:
        resource: '@MyBundle/Controller/'
        type: annotation
    app:
        resource: '@AppBundle/Controller/'
        type: annotation
    

    src/MyBundle/Controller/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');
        }
    
    }
    

    创作者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';
        }
    
    }
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Snegirekk    7 年前

    尝试“..//src/MyBundle/Controller'和'..//src/AppBundle/Controller'

    它是 known issue bundle inheritance is now deprecated and will be removed in Symfony 4