从控制器内部获取根应用程序目录的最佳方法是什么?是否有可能将其从控制器之外获取?
现在,我通过将它(从参数)作为参数传递给服务来获得它,如下所示:
services:
sr_processor:
class: Pro\Processor
arguments: [%kernel.root_dir%]
有没有更好、更简单的方法在Symfony2中获取这些信息?
发布于 2017-09-21 19:37:29
发布于 2016-08-26 02:18:49
如果您使用此路径访问项目的非代码部分(例如,上载目录或SQLite数据库),则最好将此路径转换为参数,如下所示:
parameters:
database_path: '%kernel.root_dir%/../var/sqlite3.db'
这个参数可以被注入到您需要的任何地方,因此您不必再在代码中纠缠路径了。此外,可以在部署时覆盖该参数。最后,每个维护程序员都会更好地知道你用它来做什么。
更新:修复了kernel.root_dir常量的用法。
发布于 2015-01-21 00:18:10
此外,您还可以使用正则表达式:
$directoryPath = $this->container->getParameter('kernel.root_dir') . '/../web/bundles/yourbundle/';
$directoryPath = preg_replace("/app..../i", "", $directoryPath);
echo $directoryPath;
https://stackoverflow.com/questions/9215753
复制相似问题