Symfony2 ile çalışıyorum ve hizmet tanımını geçersiz kılmaya çalışıyorum.Symfony2 extension, replaceArjument
Uzantı düzeltildi, ancak hizmet tanımı değişmedi. İşte
kodudur:class AppExtension extends Extension
{
/**
* {@inheritdoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
$container->setParameter('app.comment.delay_between', $config['comment']['delay_between']);
$def = $container->getDefinition('app.comment.manager')
->replaceArgument(0, $config['comment']);
$container->setDefinition('app.comment.manager2', $def);
}
/**
* {@inheritdoc}
*/
public function getAlias() {
return 'app';
}
}
hizmet Definition:
app.comment.manager:
class: AppBundle\Comment\CommentManager
arguments:
- []
- "@doctrine.orm.entity_manager"
Ve sınıf CommentManager yapıcısı: Ben buna
/**
* CommandManager constructor.
* @param array $config
* @param EntityManagerInterface $em
*/
public function __construct(array $config, EntityManagerInterface $em) {
$this->config = $config;
var_dump($config);
$this->em = $em;
}
Ve denetleyicisi:
Gördüğünüz gibi/home/nathan/Dev/click-tube/src/symfony/src/AppBundle/Comment/CommentManager.php:37:
array (size=0)
empty
/home/nathan/Dev/click-tube/src/symfony/src/AppBundle/Comment/CommentManager.php:37:
array (size=1)
'delay_between' => int 60
, ben (wich yapmak istediğim budur) app.commment.manager hizmet tanımını değiştiremez:
Ve bu sonuç almak. Ancak, uzantıların oluşturduğu bir hizmetteki değişiklikleri yansıtabilirim. App.comment.manager'daki değişiklikleri uygulamak için çözüm nedir?
Teşekkür ederiz. replaceArgument çağrı gerçekten argümanları değiştirmek vermedi nerede bu yardım
Teşekkür ederim, bunu yapmayı çoktan düşündüm, ancak bu belgede replaceArgument yönteminin neden işe yaramadığını merak ediyorum, dokümana göre mümkün (http://symfony.com/doc/current/ bileşenler/dependency_injection/definitions.html # alma ve ayarlama-hizmet tanımları). – NathanVss