Tôi có thể tiêm dịch vụ vào Symfony2/Doctrine2 Data Fixtures như thế nào? Tôi muốn tạo người dùng giả và cần dịch vụ security.encoder_factory
để mã hóa mật khẩu của tôi.Làm thế nào để tiêm dịch vụ vào Symfony 2 Data Fixtures?
Tôi đã cố gắng xác định Fixture dữ liệu của tôi như là một dịch vụ
myapp.loadDataFixture:
class: myapp\SomeBundle\DataFixtures\ORM\LoadDataFixtures
arguments:
- '@security.encoder_factory'
Sau đó, trong dữ liệu của tôi Fixture
class LoadDataFixtures implements FixtureInterface {
protected $passwordEncoder;
public function __construct($encoderFactory) {
$this->passwordEncoder = $encoderFactory->getEncoder(new User());
}
public function load($em) {
Nhưng có cái gì đó như
Cảnh báo: Thiếu đối số 1 cho . .. \ DataFixtures \ ORM \ LoadDataFixtures :: __ construct(), được gọi là ...
Điều này không giống như một sự thận trọng của SOLID đối với câu hỏi – murtho