symfony - 无法自动装配服务“X”:方法“__construct()”的参数“$param”是类型提示的“字符串”,您应该明确配置其值
问题描述
我有一个带有这个构造函数的类:
public function __construct(string $username, string $database, string $password, string $host)
{
$this->username = $username;
$this->database = $database;
$this->password = $password;
$this->host = $host;
}
在我的服务配置文件中,我添加了:
App\DataFixtures\Migration\Database\DatabaseConnector:
arguments:
$username: '%env(USERNAME_PROD)%'
$password: '%env(PASSWORD_PROD)%'
$database: '%env(DATABASE_PROD)%'
$host: '%env(HOST_PROD)%'
我已经尝试禁用和启用自动配置和自动装配,但没有解决问题。
我的配置文件真的被加载了。
解决方案
您应该明确配置其值
...也许在构造方法中,而不是将其作为参数传递。看看Dotenv 组件
如果您的数据库凭据已经存储在 .env 中,您可以直接从类的构造函数中访问:
public function __construct()
{
$this->username = $_ENV['USERNAME_PROD'];
$this->database = $_ENV['DATABASE_PROD'];
$this->password = $_ENV['PASSWORD_PROD'];
$this->host = $_ENV['HOST_PROD'];
}
推荐阅读
- ansible - ansible:如何执行仅安装在delegate_to上而不安装在控制器上的自定义模块?
- javascript - 在 firebase 云函数中使用 express `app.get()` 访问文件
- android - Android:如何使用 RSA 签名?
- android - 使用 CMake 为 Android 构建 C++ 时如何解决 pthread 和 posix 错误
- mysql - 使用 Hibernate Spatial 和 MySQL 进行属性转换
- c# - 无法从 .Net 5.0 WebApi 访问 GlobalConfiguration.Configuration
- r - 使用 Reduce() 和 list() 合并多个数据帧
- typescript - 在“string |”类型上找不到带有“string”类型参数的索引签名 号码 | 环境类型'
- php - 在数据中给出的特定日期删除 MySQL 数据
- javascript - 如何修复未捕获的类型错误:players.setAttribute 不是函数?