Skip to content

Commit a41fd27

Browse files
committed
renamed Symfony2 => Symfony module. Fixes #2850
0 parents  commit a41fd27

File tree

2 files changed

+481
-0
lines changed

2 files changed

+481
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?php
2+
namespace Codeception\Lib\Connector;
3+
4+
class Symfony extends \Symfony\Component\HttpKernel\Client
5+
{
6+
7+
/**
8+
* @var boolean
9+
*/
10+
private static $hasPerformedRequest;
11+
12+
/**
13+
* @var array
14+
*/
15+
public $persistentServices = [];
16+
17+
/**
18+
* @param Request $request
19+
*/
20+
protected function doRequest($request)
21+
{
22+
$services = [];
23+
if (self::$hasPerformedRequest) {
24+
$services = $this->persistServices();
25+
$this->kernel = clone $this->kernel;
26+
} else {
27+
self::$hasPerformedRequest = true;
28+
}
29+
$this->kernel->boot();
30+
31+
$container = $this->kernel->getContainer();
32+
if ($this->kernel->getContainer()->has('profiler')) {
33+
$container->get('profiler')->enable();
34+
}
35+
36+
$this->injectPersistedServices($services);
37+
38+
return parent::doRequest($request);
39+
}
40+
41+
/**
42+
* @return array
43+
*/
44+
protected function persistServices()
45+
{
46+
$services = [];
47+
foreach ($this->persistentServices as $serviceName) {
48+
if (!$this->kernel->getContainer()->has($serviceName)) {
49+
continue;
50+
}
51+
$services[$serviceName] = $this->kernel->getContainer()->get($serviceName);
52+
}
53+
return $services;
54+
}
55+
56+
/**
57+
* @param array $services
58+
*/
59+
protected function injectPersistedServices($services)
60+
{
61+
foreach ($services as $serviceName => $service) {
62+
$this->kernel->getContainer()->set($serviceName, $service);
63+
}
64+
}
65+
}

0 commit comments

Comments
 (0)