我可以从 Symfony2 的容器中到达“/web”路径吗?

Can I reach "/web" path from within a container in Symfony2?

我需要在 /web/import 路径中保存一个文件,我想知道哪种方法是实现此目的的最佳方法。我在 /Service/SyncController.php 中定义了一个 class,它从 Controller 延伸:

class SyncController extends Controller { ... } 

class 也定义为服务:

sync.service:
    class: PDI\PDOneBundle\Service\SyncController
    arguments: ["@service_container", "@doctrine.orm.entity_manager", "@request_stack", "%kernel.root_dir%"]

我是否需要传递参数 "%kernel.root_dir%" 才能以 $this->webRoot = realpath($rootDir . '/../web') 的形式访问 Web 路径,或者我可以从 @service_container 传递?为了在其中保存文件,获取 /web/import 路径的正确方法是什么?

我们使用此配置来执行此操作。

在parameters.yml

upload_path: "/images/uploads"
upload_dir: "%kernel.root_dir%/../web%upload_path%"

为了便于阅读,我们将路径与目录分开。

在控制器中:

$work_dir = $this->container->getParameter('upload_dir');