<?php
namespace App\DIMENSION4\PseudonymisationBundle;
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
use Doctrine\DBAL\Types\Type;
use App\DIMENSION4\PseudonymisationBundle\DependencyInjection\Compiler\RegisterTypeCompilerPass;
use App\DIMENSION4\PseudonymisationBundle\Types\PseudonymisedType;
use App\DIMENSION4\PseudonymisationBundle\Types\PseudoSearchType;
class DIMENSION4PseudonymisationBundle extends Bundle
{
/**
* Constructor
* Initialise le type custom
*/
public function __construct() {
if (!Type::hasType(PseudonymisedType::PSEUDONYMISED)) {
Type::addType(PseudonymisedType::PSEUDONYMISED, 'App\DIMENSION4\PseudonymisationBundle\Types\PseudonymisedType');
}
if (!Type::hasType(PseudoSearchType::PSEUDOSEARCH)) {
Type::addType(PseudoSearchType::PSEUDOSEARCH, 'App\DIMENSION4\PseudonymisationBundle\Types\PseudoSearchType');
}
}
public function boot()
{
// parent::boot();
// récupération du type custom pour champ pseudonymisé
$customType = Type::getType(PseudonymisedType::PSEUDONYMISED);
// récupération du type custom pour champ pseudo recherche
$customTypeSerach = Type::getType(PseudoSearchType::PSEUDOSEARCH);
// récupération des paramètres nécessaires aux types
$fctPseudonymise = $this->container->getParameter('dimension4_pseudonymisation.function_pseudonymise');
$fctPseudoSearch = $this->container->getParameter('dimension4_pseudonymisation.function_pseudo_search');
$fctUnpseudonymise = $this->container->getParameter('dimension4_pseudonymisation.function_unpseudonymise');
$fctUnPseudoSearch = $this->container->getParameter('dimension4_pseudonymisation.function_unpseudo_search');
$keyManager = $this->container->get('dimension4_pseudonymisation.key_manager');
$keyEncrypted = $keyManager->getKeyEncrypted();
// initialisation des dépendances des types
$customType->setDependencies($fctPseudonymise, $fctUnpseudonymise, $keyEncrypted);
$customTypeSerach->setDependencies($fctPseudoSearch, $fctUnPseudoSearch, $keyEncrypted);
}
/**
* {@inheritdoc}
*/
// public function build (ContainerBuilder $container) {
//
// parent::build($container);
//
//
// // $container->addCompilerPass(new RegisterTypeCompilerPass());
// }
}