Custom Controller Directory Structure Symfony2

前端 未结 2 922
长情又很酷
长情又很酷 2021-01-23 10:10

I\'m transitioning a Kohana application to Symfony2. In Kohana I had to register a custom autoloader to make the framework see my controllers given my preferred directory struct

相关标签:
2条回答
  • 2021-01-23 11:06

    You can place your controllers wherever you want, just import them in your routing.yml:

    controller:
        resource: @MyBundle/Theme/Frontend/Controller/
        type: annotation
    

    Of course, this is only an example. You can find more information and plenty of examples on routing here: http://symfony.com/doc/current/book/routing.html

    0 讨论(0)
  • 2021-01-23 11:08

    Its not possible using the _controller key of a YAML resource file. This is the Symfony2 code that is executed:

    //classes.php, parse method

     $try = $b->getNamespace() . '\\Controller\\' . $controller . 'Controller'; 
     if (class_exists($try)) {
          return $try . '::' . $action . 'Action';
     }
    

    As you can see "Controller" is concatenated after the Bundle namespace. Autoloading will use the namespace as a file path and the controller will never be found.

    If your using _Controller your controllers must be under the "Controller" folder that is immediately inside your Bundle directory.

    0 讨论(0)
提交回复
热议问题