在Symfony 2应用程序中获取应用程序根URL和目录名称

Jie*_*eng 8 symfony

我想知道两个系统的应用程序的根源,例如./var/www/app/或者/app/用于文件上传的目的.当我上传时,我相信我需要"系统"目录名,用于web前端的链接,我需要"相对"路径.我如何获得这些信息?

在之前的项目中,我在app*.php文件中定义了常量(前端控制器)

define('APP_ROOT', __DIR__);
Run Code Online (Sandbox Code Playgroud)

不知道有没有更好的方式?

Mun*_*Das 16

在任何ContainerAware类中,您都可以获取web目录的位置,

$this->container->get('kernel')->getRootdir().'/../web';
Run Code Online (Sandbox Code Playgroud)

  • 如果项目可能托管在Windows环境中,那么使用DIRECTORY_SEPARATOR而不是'/'来定义各种路径不应该是一个好习惯吗? (2认同)

Tgr*_*Tgr 9

如果容器不可用,则可以使用依赖注入:%kernel.root_dir%在服务配置中将类设置为类的参数.