for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file was created by developers working at BitBag
* Do you need more information about us and what we do? Visit our https://bitbag.io website!
* We are hiring developers from all over the world. Join us and start your new, exciting adventure and become part of us: https://bitbag.io/career
*/
declare(strict_types=1);
namespace BitBag\SyliusCmsPlugin\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
final class MediaProviderPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container): void
if (!$container->hasDefinition('bitbag_sylius_cms_plugin.registry.media_provider')) {
return;
}
$providerRegistry = $container->getDefinition('bitbag_sylius_cms_plugin.registry.media_provider');
$providers = [];
foreach ($container->findTaggedServiceIds('bitbag_sylius_cms_plugin.media_provider') as $id => $attributes) {
if (!isset($attributes[0]['type']) || !isset($attributes[0]['label'])) {
throw new \InvalidArgumentException('Tagged media provider needs to have `type` and `label` attribute.');
$name = $attributes[0]['label'];
$type = $attributes[0]['type'];
$providers[$name] = $type;
$providerRegistry->addMethodCall('register', [$type, new Reference($id)]);
ksort($providers);
$container->setParameter('bitbag_sylius_cms_plugin.media_providers', $providers);