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

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,
) {}
}
- 2 回答
- 0 關注
- 159 瀏覽
添加回答
舉報