1. Go to this page and download the library: Download xphere/tag-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
xphere / tag-bundle example snippets
class PluginEnumeratorConsumerCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
if (!$container->has('my_plugin_enumerator')) {
return;
}
$definition = $container->findDefinition('my_plugin_enumerator');
$taggedServices = $container->findTaggedServices('my_plugin');
foreach ($taggedServices as $id => $attributes) {
$definition->addMethodCall('addPlugin', array(new Reference($id)));
}
}
}
class MyEventDispatcherInjectableCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
if (!$container->has('my_event_dispatcher')) {
return;
}
$reference = new Reference('my_event_dispatcher');
$taggedServices = $container->findTaggedServices('my_event_dispatcher.aware');
foreach ($taggedServices as $id => $attributes) {
$definition = $container->findDefinition($id);
$definition->addMethodCall('setMyEventDispatcher', array($reference));
}
}
}
[
'MyClass' => new MyClassCommandHandler(),
'OtherClass' => new OtherClassCommandHandler(),
]
[
'MyEvent' => [
new FirstEventHandler(),
new ThirdEventHandler(),
],
'OtherEvent' => [
new SecondEventHandler(),
],
]
[...]
use xPheRe\Bundle\TagBundle\DependencyInjection\Compiler\TagConsumerPass;
use xPheRe\Bundle\TagBundle\DependencyInjection\Compiler\TagInjectablePass;
[...]
class AppKernel extends Kernel
{
[...]
protected function prepareContainer(ContainerBuilder $container)
{
parent::prepareContainer($container);
$container->addCompilerPass(new TagConsumerPass('tag_collector'));
$container->addCompilerPass(new TagInjectablePass('tag_injectable'));
}
[...]
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.