Skip to content

Commit 13dbdbc

Browse files
covex-nnElectricMaxxx
authored andcommitted
Read KERNEL_DIR and KERNEL_CLASS from phpunit.xml.dist for bin/console (#182)
* Read KERNEL_DIR and KERNEL_CLASS from phpunit.xml.dist for bin/console * Fix condition
1 parent 5ed313d commit 13dbdbc

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

bootstrap/kernel_bootstrap.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,18 @@
2525
}
2626

2727
$xml = new \SimpleXMLElement(file_get_contents($phpUnitFile));
28-
$kernelDir = $xml->php[0]->server[0]['value'];
2928

30-
$kernelFile = $rootDir.'/'.$kernelDir.'/AppKernel.php';
29+
$envDir = $xml->xpath("//php/server[@name='KERNEL_DIR']");
30+
if (!count($envDir)) {
31+
throw new \Exception(
32+
'Kernel path must be set via <server name"KERNEL_DIR" value="..."/>'
33+
);
34+
}
35+
$envClass = $xml->xpath("//php/env[@name='KERNEL_CLASS']");
36+
37+
$kernelClass = count($envClass) ? (string) $envClass[0]['value'] : 'AppKernel';
38+
$kernelNs = explode('\\', $kernelClass);
39+
$kernelFile = $rootDir.'/'.$envDir[0]['value'].'/'.array_pop($kernelNs).'.php';
3140

3241
if (!file_exists($kernelFile)) {
3342
throw new \Exception(sprintf(
@@ -38,4 +47,4 @@
3847

3948
require_once $kernelFile;
4049

41-
return new AppKernel($env, true);
50+
return new $kernelClass($env, true);

0 commit comments

Comments
 (0)