首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取Symfony2应用程序的根目录?

如何获取Symfony2应用程序的根目录?
EN

Stack Overflow用户
提问于 2012-02-10 01:30:00
回答 4查看 163.6K关注 0票数 126

从控制器内部获取根应用程序目录的最佳方法是什么?是否有可能将其从控制器之外获取?

现在,我通过将它(从参数)作为参数传递给服务来获得它,如下所示:

services:

    sr_processor:
        class: Pro\Processor
        arguments: [%kernel.root_dir%]

有没有更好、更简单的方法在Symfony2中获取这些信息?

EN

回答 4

Stack Overflow用户

发布于 2017-09-21 19:37:29

您可以使用In Symfony 3.3

$projectRoot = $this->get('kernel')->getProjectDir();

来获取web/project根目录。

票数 16
EN

Stack Overflow用户

发布于 2016-08-26 02:18:49

如果您使用此路径访问项目的非代码部分(例如,上载目录或SQLite数据库),则最好将此路径转换为参数,如下所示:

parameters:
    database_path: '%kernel.root_dir%/../var/sqlite3.db'

这个参数可以被注入到您需要的任何地方,因此您不必再在代码中纠缠路径了。此外,可以在部署时覆盖该参数。最后,每个维护程序员都会更好地知道你用它来做什么。

更新:修复了kernel.root_dir常量的用法。

票数 8
EN

Stack Overflow用户

发布于 2015-01-21 00:18:10

此外,您还可以使用正则表达式:

    $directoryPath = $this->container->getParameter('kernel.root_dir') . '/../web/bundles/yourbundle/';
    $directoryPath = preg_replace("/app..../i", "", $directoryPath);
    echo $directoryPath;
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9215753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档