Augmentation vers version 3.3.0

This commit is contained in:
Gauvain Boiché
2020-03-31 15:31:03 +02:00
parent d926806907
commit a1864c0414
2618 changed files with 406015 additions and 31377 deletions

View File

@@ -11,7 +11,7 @@
namespace Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\Config\Resource\FileResource;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
/**
* PhpFileLoader loads service definitions from a PHP file.
@@ -34,9 +34,18 @@ class PhpFileLoader extends FileLoader
$path = $this->locator->locate($resource);
$this->setCurrentDir(\dirname($path));
$this->container->addResource(new FileResource($path));
$this->container->fileExists($path);
include $path;
// the closure forbids access to the private scope in the included file
$load = \Closure::bind(function ($path) use ($container, $loader, $resource, $type) {
return include $path;
}, $this, ProtectedPhpFileLoader::class);
$callback = $load($path);
if ($callback instanceof \Closure) {
$callback(new ContainerConfigurator($this->container, $this, $this->instanceof, $path, $resource), $this->container, $this);
}
}
/**
@@ -44,6 +53,21 @@ class PhpFileLoader extends FileLoader
*/
public function supports($resource, $type = null)
{
return \is_string($resource) && 'php' === pathinfo($resource, PATHINFO_EXTENSION);
if (!\is_string($resource)) {
return false;
}
if (null === $type && 'php' === pathinfo($resource, PATHINFO_EXTENSION)) {
return true;
}
return 'php' === $type;
}
}
/**
* @internal
*/
final class ProtectedPhpFileLoader extends PhpFileLoader
{
}