为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Symfony 5 中获取项目或根目录

如何在 Symfony 5 中获取项目或根目录

PHP
慕后森 2023-05-12 16:06:26
我使用 Symfony 5 和 Solarium。我想在我的控制器(从 AbstractController 扩展)中获取项目目录(或根目录)。我看到了一些关于内核、创建新服务等的答案。但是,它不只是一个调用项目目录而不创建一些自定义服务等的函数吗?谢谢 !
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

您不需要为此提供任何服务。您可以从控制器中的容器中获取。


$this->getParameter('kernel.project_dir');


另一种方法是将它绑定到 yaml 上。


    _defaults:

        bind:

            # pass this value to any $projectDir argument for any service

            # that's created in this file (including controller arguments)

            string $projectDir: '%kernel.project_dir%'

因此,您可以将每个服务和控制器作为$projectDir注入。


public class YourController {

   public function index(string $projectDir){

        // Your code

   }

}

public class YourService {

   public function __construct(string $projectDir){

        // Your code

   }

}

https://symfony.com/doc/current/configuration.html#accessing-configuration-parameters


查看完整回答
反对 回复 2023-05-12
?
慕容森

TA贡献1853条经验 获得超18个赞

从 Symfony 6.1 开始,您可以自动装配参数

https://symfony.com/blog/new-in-symfony-6-1-service-autowiring-attributes


<?php

use Symfony\Component\DependencyInjection\Attribute\Autowire;


class MyService

{

    public function __construct(

        #[Autowire('%kernel.project_dir%/config/dir')]

        private $dir,

    ) {}

}


查看完整回答
反对 回复 2023-05-12
  • 2 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信