-
Notifications
You must be signed in to change notification settings - Fork 440
/
Copy pathCustomAppKernel.php
92 lines (77 loc) · 2.47 KB
/
CustomAppKernel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
namespace Enqueue\Bundle\Tests\Functional\App;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Routing\RouteCollectionBuilder;
class CustomAppKernel extends Kernel
{
use MicroKernelTrait;
private $enqueueConfigId;
private $enqueueConfig = [
'default' => [
'client' => [
'prefix' => 'enqueue',
'app_name' => '',
'router_topic' => 'test',
'router_queue' => 'test',
'default_queue' => 'test',
],
],
];
public function setEnqueueConfig(array $config)
{
$this->enqueueConfig = array_replace_recursive($this->enqueueConfig, $config);
$this->enqueueConfig['default']['client']['app_name'] = str_replace('.', '', uniqid('app_name', true));
$this->enqueueConfigId = md5(json_encode($this->enqueueConfig));
$fs = new Filesystem();
$fs->remove(sys_get_temp_dir().'/EnqueueBundleCustom/cache/'.$this->enqueueConfigId);
$fs->mkdir(sys_get_temp_dir().'/EnqueueBundleCustom/cache/'.$this->enqueueConfigId);
}
/**
* @return array
*/
public function registerBundles()
{
$bundles = [
new \Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new \Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new \Enqueue\Bundle\EnqueueBundle(),
];
return $bundles;
}
/**
* @return string
*/
public function getCacheDir()
{
return sys_get_temp_dir().'/EnqueueBundleCustom/cache/'.$this->enqueueConfigId;
}
/**
* @return string
*/
public function getLogDir()
{
return sys_get_temp_dir().'/EnqueueBundleCustom/cache/logs/'.$this->enqueueConfigId;
}
protected function getContainerClass()
{
return parent::getContainerClass().'Custom'.$this->enqueueConfigId;
}
/**
* {@inheritdoc}
*/
protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/custom-config.yml');
$c->loadFromExtension('enqueue', $this->enqueueConfig);
}
/**
* {@inheritdoc}
*/
protected function configureRoutes(RouteCollectionBuilder $routes)
{
}
}