我是symfony3的新手,所以,请耐心等待。
从文档和我遇到的大多数教程中,将枝条放在app\Resources
目录中。是的,我跟着它。
最近,我发现了创建Controller的这个命令,这是我能做到的最快的方法:
php bin / console generate:controller --actions = showAction()/ profile /:AppBundle:Profile:profile.html.twig`
执行上述行时,它会自动在Profile
内创建src\AppBundle\Controller
控制器,在src\AppBundle\Resources
内自动创建细枝,注意:Resources
是自动创建的新文件夹。< / p>
这是目录:
从这一点开始,我很好奇存储twig文件的合适文件夹是什么。我应该将文件复制并复制回app
文件夹吗?这背后有什么理由吗?
答案 0 :(得分:1)
两者都是正确的,但如果你愿意,在bestPractices(https://symfony.com/doc/current/best_practices/templates.html#template-locations)中,他们说:
将所有应用程序的模板存储在app / Resources / views /目录中。
答案 1 :(得分:1)
其他大多数答案都没有给你全面的了解,所以让我们从一个小背景开始。
有一个issue created on the SensioGeneratorBundle来更新Controller生成器以使用最佳实践,但它已关闭并标记为更新Doctrine CRUD生成器的duplicate of another issue。在那里,问题已修复,以便模板使用app/Resources/views
目录。我不认为original issue应该被关闭。
如果您查看pull request for the Doctrine CRUD generator,它会将捆绑目录路径从$bundle->getPath()
更改为$this->getContainer()->getParameter('kernel.root_dir')
。但是,Controller生成器从未进行过类似的更新。
我相信你偶然发现了应该在包本身内更新的内容,并且原始问题应该从未被关闭过。我对这个问题发表了评论,可能只是自己提交一个拉取请求来修复它。
因此,要回答您的原始问题,是的,您应该将它们移回app/Resources/views
文件夹以遵循Symfony最佳做法,最终应在SensioGeneratorBundle更新Controller生成器命令
答案 2 :(得分:0)
如果你在app中创建资源视图,那么两种方式都是很好的bcs,如果你只需创建一个bundle就可以在所有bundle中访问它,那么bundle资源内部也可以。所以,它取决于你。 :)
答案 3 :(得分:0)
这两个文件夹都是正确的,但大多数应用程序/资源用于存储扩展了布局或电子邮件等细分,但在Controller内部使用此控制器。 但是,从控制器使用到twoher控制器的枝条