composer update
This commit is contained in:
3
vendor/symfony/http-kernel/.gitattributes
vendored
3
vendor/symfony/http-kernel/.gitattributes
vendored
@@ -1,3 +0,0 @@
|
||||
/Tests export-ignore
|
||||
/phpunit.xml.dist export-ignore
|
||||
/.gitignore export-ignore
|
||||
2
vendor/symfony/http-kernel/Bundle/Bundle.php
vendored
2
vendor/symfony/http-kernel/Bundle/Bundle.php
vendored
@@ -69,7 +69,7 @@ abstract class Bundle implements BundleInterface
|
||||
|
||||
if (null !== $extension) {
|
||||
if (!$extension instanceof ExtensionInterface) {
|
||||
throw new \LogicException(sprintf('Extension %s must implement Symfony\Component\DependencyInjection\Extension\ExtensionInterface.', \get_class($extension)));
|
||||
throw new \LogicException(sprintf('Extension "%s" must implement Symfony\Component\DependencyInjection\Extension\ExtensionInterface.', \get_class($extension)));
|
||||
}
|
||||
|
||||
// check naming convention
|
||||
|
||||
@@ -31,7 +31,7 @@ class Psr6CacheClearer implements CacheClearerInterface
|
||||
public function getPool($name)
|
||||
{
|
||||
if (!$this->hasPool($name)) {
|
||||
throw new \InvalidArgumentException(sprintf('Cache pool not found: %s.', $name));
|
||||
throw new \InvalidArgumentException(sprintf('Cache pool not found: "%s".', $name));
|
||||
}
|
||||
|
||||
return $this->pools[$name];
|
||||
@@ -40,7 +40,7 @@ class Psr6CacheClearer implements CacheClearerInterface
|
||||
public function clearPool($name)
|
||||
{
|
||||
if (!isset($this->pools[$name])) {
|
||||
throw new \InvalidArgumentException(sprintf('Cache pool not found: %s.', $name));
|
||||
throw new \InvalidArgumentException(sprintf('Cache pool not found: "%s".', $name));
|
||||
}
|
||||
|
||||
return $this->pools[$name]->clear();
|
||||
|
||||
@@ -65,20 +65,24 @@ class FileLocator extends BaseFileLocator
|
||||
|| (\strlen($file) > 3 && ctype_alpha($file[0]) && ':' === $file[1] && ('\\' === $file[2] || '/' === $file[2]))
|
||||
|| null !== parse_url($file, PHP_URL_SCHEME)
|
||||
)) {
|
||||
$deprecation = false;
|
||||
|
||||
// no need to trigger deprecations when the loaded file is given as absolute path
|
||||
foreach ($this->paths as $deprecatedPath) {
|
||||
if (\is_array($locations)) {
|
||||
foreach ($locations as $location) {
|
||||
if (0 === strpos($location, $deprecatedPath) && (null === $currentPath || false === strpos($location, $currentPath))) {
|
||||
@trigger_error(sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath), E_USER_DEPRECATED);
|
||||
}
|
||||
foreach ((array) $locations as $location) {
|
||||
if (null !== $currentPath && 0 === strpos($location, $currentPath)) {
|
||||
return $locations;
|
||||
}
|
||||
} else {
|
||||
if (0 === strpos($locations, $deprecatedPath) && (null === $currentPath || false === strpos($locations, $currentPath))) {
|
||||
@trigger_error(sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath), E_USER_DEPRECATED);
|
||||
|
||||
if (0 === strpos($location, $deprecatedPath) && (null === $currentPath || false === strpos($location, $currentPath))) {
|
||||
$deprecation = sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($deprecation) {
|
||||
@trigger_error($deprecation, E_USER_DEPRECATED);
|
||||
}
|
||||
}
|
||||
|
||||
return $locations;
|
||||
|
||||
@@ -62,7 +62,7 @@ final class ArgumentResolver implements ArgumentResolverInterface
|
||||
}
|
||||
|
||||
if (!$atLeastOne) {
|
||||
throw new \InvalidArgumentException(sprintf('%s::resolve() must yield at least one value.', \get_class($resolver)));
|
||||
throw new \InvalidArgumentException(sprintf('"%s::resolve()" must yield at least one value.', \get_class($resolver)));
|
||||
}
|
||||
|
||||
// continue to the next controller argument
|
||||
|
||||
@@ -64,7 +64,7 @@ class ContainerControllerResolver extends ControllerResolver
|
||||
throw new \InvalidArgumentException(sprintf('Controller "%s" has required constructor arguments and does not exist in the container. Did you forget to define the controller as a service?', $class), 0, $e);
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException(sprintf('Controller "%s" does neither exist as service nor as class', $class), 0, $e);
|
||||
throw new \InvalidArgumentException(sprintf('Controller "%s" does neither exist as service nor as class.', $class), 0, $e);
|
||||
}
|
||||
|
||||
private function throwExceptionIfControllerWasRemoved(string $controller, \Throwable $previous)
|
||||
|
||||
@@ -64,7 +64,7 @@ class ControllerResolver implements ControllerResolverInterface
|
||||
}
|
||||
|
||||
if (!\is_callable($controller)) {
|
||||
throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable. %s', $request->getPathInfo(), $this->getControllerError($controller)));
|
||||
throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: '.$this->getControllerError($controller), $request->getPathInfo()));
|
||||
}
|
||||
|
||||
return $controller;
|
||||
@@ -72,7 +72,7 @@ class ControllerResolver implements ControllerResolverInterface
|
||||
|
||||
if (\is_object($controller)) {
|
||||
if (!\is_callable($controller)) {
|
||||
throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable. %s', $request->getPathInfo(), $this->getControllerError($controller)));
|
||||
throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: '.$this->getControllerError($controller), $request->getPathInfo()));
|
||||
}
|
||||
|
||||
return $controller;
|
||||
@@ -85,11 +85,11 @@ class ControllerResolver implements ControllerResolverInterface
|
||||
try {
|
||||
$callable = $this->createController($controller);
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable. %s', $request->getPathInfo(), $e->getMessage()));
|
||||
throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: '.$e->getMessage(), $request->getPathInfo()), 0, $e);
|
||||
}
|
||||
|
||||
if (!\is_callable($callable)) {
|
||||
throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable. %s', $request->getPathInfo(), $this->getControllerError($callable)));
|
||||
throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable: '.$this->getControllerError($callable), $request->getPathInfo()));
|
||||
}
|
||||
|
||||
return $callable;
|
||||
|
||||
@@ -99,7 +99,7 @@ class ArgumentMetadata
|
||||
public function getDefaultValue()
|
||||
{
|
||||
if (!$this->hasDefaultValue) {
|
||||
throw new \LogicException(sprintf('Argument $%s does not have a default value. Use %s::hasDefaultValue() to avoid this exception.', $this->name, __CLASS__));
|
||||
throw new \LogicException(sprintf('Argument $%s does not have a default value. Use "%s::hasDefaultValue()" to avoid this exception.', $this->name, __CLASS__));
|
||||
}
|
||||
|
||||
return $this->defaultValue;
|
||||
|
||||
@@ -198,7 +198,7 @@ class DumpDataCollector extends DataCollector implements DataDumperInterface
|
||||
$dumper = new HtmlDumper($data, $this->charset);
|
||||
$dumper->setDisplayOptions(['fileLinkFormat' => $this->fileLinkFormat]);
|
||||
} else {
|
||||
throw new \InvalidArgumentException(sprintf('Invalid dump format: %s', $format));
|
||||
throw new \InvalidArgumentException(sprintf('Invalid dump format: "%s".', $format));
|
||||
}
|
||||
$dumps = [];
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte
|
||||
continue;
|
||||
}
|
||||
|
||||
$message = $log['message'];
|
||||
$message = '_'.$log['message'];
|
||||
$exception = $log['context']['exception'];
|
||||
|
||||
if ($exception instanceof SilencedErrorContext) {
|
||||
|
||||
@@ -15,6 +15,7 @@ use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\Console\ConsoleEvents;
|
||||
use Symfony\Component\Console\Event\ConsoleEvent;
|
||||
use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
||||
use Symfony\Component\Debug\ErrorHandler as LegacyErrorHandler;
|
||||
use Symfony\Component\Debug\Exception\FatalThrowableError;
|
||||
use Symfony\Component\ErrorHandler\ErrorHandler;
|
||||
use Symfony\Component\EventDispatcher\Event;
|
||||
@@ -66,6 +67,9 @@ class DebugHandlersListener implements EventSubscriberInterface
|
||||
*/
|
||||
public function configure(Event $event = null)
|
||||
{
|
||||
if ($event instanceof ConsoleEvent && !\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) {
|
||||
return;
|
||||
}
|
||||
if (!$event instanceof KernelEvent ? !$this->firstCall : !$event->isMasterRequest()) {
|
||||
return;
|
||||
}
|
||||
@@ -76,7 +80,7 @@ class DebugHandlersListener implements EventSubscriberInterface
|
||||
restore_exception_handler();
|
||||
|
||||
if ($this->logger || null !== $this->throwAt) {
|
||||
if ($handler instanceof ErrorHandler) {
|
||||
if ($handler instanceof ErrorHandler || $handler instanceof LegacyErrorHandler) {
|
||||
if ($this->logger) {
|
||||
$handler->setDefaultLogger($this->logger, $this->levels);
|
||||
if (\is_array($this->levels)) {
|
||||
@@ -135,7 +139,7 @@ class DebugHandlersListener implements EventSubscriberInterface
|
||||
}
|
||||
}
|
||||
if ($this->exceptionHandler) {
|
||||
if ($handler instanceof ErrorHandler) {
|
||||
if ($handler instanceof ErrorHandler || $handler instanceof LegacyErrorHandler) {
|
||||
$handler->setExceptionHandler($this->exceptionHandler);
|
||||
}
|
||||
$this->exceptionHandler = null;
|
||||
@@ -146,7 +150,7 @@ class DebugHandlersListener implements EventSubscriberInterface
|
||||
{
|
||||
$events = [KernelEvents::REQUEST => ['configure', 2048]];
|
||||
|
||||
if ('cli' === \PHP_SAPI && \defined('Symfony\Component\Console\ConsoleEvents::COMMAND')) {
|
||||
if (\defined('Symfony\Component\Console\ConsoleEvents::COMMAND')) {
|
||||
$events[ConsoleEvents::COMMAND] = ['configure', 2048];
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ class TranslatorListener implements EventSubscriberInterface
|
||||
public function __construct($translator, RequestStack $requestStack)
|
||||
{
|
||||
if (!$translator instanceof TranslatorInterface && !$translator instanceof LocaleAwareInterface) {
|
||||
throw new \TypeError(sprintf('Argument 1 passed to %s() must be an instance of %s, %s given.', __METHOD__, LocaleAwareInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
|
||||
throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be an instance of "%s", "%s" given.', __METHOD__, LocaleAwareInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
|
||||
}
|
||||
$this->translator = $translator;
|
||||
$this->requestStack = $requestStack;
|
||||
|
||||
@@ -98,7 +98,7 @@ class FragmentHandler
|
||||
protected function deliver(Response $response)
|
||||
{
|
||||
if (!$response->isSuccessful()) {
|
||||
throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $this->requestStack->getCurrentRequest()->getUri(), $response->getStatusCode()));
|
||||
throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %d).', $this->requestStack->getCurrentRequest()->getUri(), $response->getStatusCode()));
|
||||
}
|
||||
|
||||
if (!$response instanceof StreamedResponse) {
|
||||
|
||||
@@ -57,7 +57,7 @@ class HIncludeFragmentRenderer extends RoutableFragmentRenderer
|
||||
public function setTemplating($templating)
|
||||
{
|
||||
if (null !== $templating && !$templating instanceof EngineInterface && !$templating instanceof Environment) {
|
||||
throw new \InvalidArgumentException('The hinclude rendering strategy needs an instance of Twig\Environment or Symfony\Component\Templating\EngineInterface');
|
||||
throw new \InvalidArgumentException('The hinclude rendering strategy needs an instance of Twig\Environment or Symfony\Component\Templating\EngineInterface.');
|
||||
}
|
||||
|
||||
if ($templating instanceof EngineInterface) {
|
||||
|
||||
@@ -96,7 +96,7 @@ abstract class AbstractSurrogate implements SurrogateInterface
|
||||
$response = $cache->handle($subRequest, HttpKernelInterface::SUB_REQUEST, true);
|
||||
|
||||
if (!$response->isSuccessful()) {
|
||||
throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $subRequest->getUri(), $response->getStatusCode()));
|
||||
throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %d).', $subRequest->getUri(), $response->getStatusCode()));
|
||||
}
|
||||
|
||||
return $response->getContent();
|
||||
|
||||
@@ -350,6 +350,10 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
|
||||
return $this->validate($request, $entry, $catch);
|
||||
}
|
||||
|
||||
if ($entry->headers->hasCacheControlDirective('no-cache')) {
|
||||
return $this->validate($request, $entry, $catch);
|
||||
}
|
||||
|
||||
$this->record($request, 'fresh');
|
||||
|
||||
$entry->headers->set('Age', $entry->getAge());
|
||||
@@ -472,13 +476,37 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
|
||||
// always a "master" request (as the real master request can be in cache)
|
||||
$response = SubRequestHandler::handle($this->kernel, $request, HttpKernelInterface::MASTER_REQUEST, $catch);
|
||||
|
||||
// we don't implement the stale-if-error on Requests, which is nonetheless part of the RFC
|
||||
if (null !== $entry && \in_array($response->getStatusCode(), [500, 502, 503, 504])) {
|
||||
/*
|
||||
* Support stale-if-error given on Responses or as a config option.
|
||||
* RFC 7234 summarizes in Section 4.2.4 (but also mentions with the individual
|
||||
* Cache-Control directives) that
|
||||
*
|
||||
* A cache MUST NOT generate a stale response if it is prohibited by an
|
||||
* explicit in-protocol directive (e.g., by a "no-store" or "no-cache"
|
||||
* cache directive, a "must-revalidate" cache-response-directive, or an
|
||||
* applicable "s-maxage" or "proxy-revalidate" cache-response-directive;
|
||||
* see Section 5.2.2).
|
||||
*
|
||||
* https://tools.ietf.org/html/rfc7234#section-4.2.4
|
||||
*
|
||||
* We deviate from this in one detail, namely that we *do* serve entries in the
|
||||
* stale-if-error case even if they have a `s-maxage` Cache-Control directive.
|
||||
*/
|
||||
if (null !== $entry
|
||||
&& \in_array($response->getStatusCode(), [500, 502, 503, 504])
|
||||
&& !$entry->headers->hasCacheControlDirective('no-cache')
|
||||
&& !$entry->mustRevalidate()
|
||||
) {
|
||||
if (null === $age = $entry->headers->getCacheControlDirective('stale-if-error')) {
|
||||
$age = $this->options['stale_if_error'];
|
||||
}
|
||||
|
||||
if (abs($entry->getTtl()) < $age) {
|
||||
/*
|
||||
* stale-if-error gives the (extra) time that the Response may be used *after* it has become stale.
|
||||
* So we compare the time the $entry has been sitting in the cache already with the
|
||||
* time it was fresh plus the allowed grace period.
|
||||
*/
|
||||
if ($entry->getAge() <= $entry->getMaxAge() + $age) {
|
||||
$this->record($request, 'stale-if-error');
|
||||
|
||||
return $entry;
|
||||
|
||||
@@ -110,8 +110,6 @@ class ResponseCacheStrategy implements ResponseCacheStrategyInterface
|
||||
$response->headers->set('Age', $this->age);
|
||||
|
||||
if ($this->isNotCacheableResponseEmbedded) {
|
||||
$response->setExpires($response->getDate());
|
||||
|
||||
if ($this->flagDirectives['no-store']) {
|
||||
$response->headers->set('Cache-Control', 'no-cache, no-store, must-revalidate');
|
||||
} else {
|
||||
|
||||
@@ -21,6 +21,9 @@ use Symfony\Component\Mime\Part\Multipart\FormDataPart;
|
||||
use Symfony\Component\Mime\Part\TextPart;
|
||||
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
||||
|
||||
// Help opcache.preload discover always-needed symbols
|
||||
class_exists(ResponseHeaderBag::class);
|
||||
|
||||
/**
|
||||
* An implementation of a Symfony HTTP kernel using a "real" HTTP client.
|
||||
*
|
||||
|
||||
12
vendor/symfony/http-kernel/HttpKernel.php
vendored
12
vendor/symfony/http-kernel/HttpKernel.php
vendored
@@ -33,6 +33,18 @@ use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
// Help opcache.preload discover always-needed symbols
|
||||
class_exists(LegacyEventDispatcherProxy::class);
|
||||
class_exists(ControllerArgumentsEvent::class);
|
||||
class_exists(ControllerEvent::class);
|
||||
class_exists(ExceptionEvent::class);
|
||||
class_exists(FinishRequestEvent::class);
|
||||
class_exists(RequestEvent::class);
|
||||
class_exists(ResponseEvent::class);
|
||||
class_exists(TerminateEvent::class);
|
||||
class_exists(ViewEvent::class);
|
||||
class_exists(KernelEvents::class);
|
||||
|
||||
/**
|
||||
* HttpKernel notifies events to convert a Request object to a Response one.
|
||||
*
|
||||
|
||||
73
vendor/symfony/http-kernel/Kernel.php
vendored
73
vendor/symfony/http-kernel/Kernel.php
vendored
@@ -76,11 +76,11 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
|
||||
private static $freshCache = [];
|
||||
|
||||
const VERSION = '4.4.1';
|
||||
const VERSION_ID = 40401;
|
||||
const VERSION = '4.4.8';
|
||||
const VERSION_ID = 40408;
|
||||
const MAJOR_VERSION = 4;
|
||||
const MINOR_VERSION = 4;
|
||||
const RELEASE_VERSION = 1;
|
||||
const RELEASE_VERSION = 8;
|
||||
const EXTRA_VERSION = '';
|
||||
|
||||
const END_OF_MAINTENANCE = '11/2022';
|
||||
@@ -228,10 +228,10 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
public function getBundle($name)
|
||||
{
|
||||
if (!isset($this->bundles[$name])) {
|
||||
$class = \get_class($this);
|
||||
$class = static::class;
|
||||
$class = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).'@anonymous' : $class;
|
||||
|
||||
throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your %s.php file?', $name, $class));
|
||||
throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the "registerBundles()" method of your "%s.php" file?', $name, $class));
|
||||
}
|
||||
|
||||
return $this->bundles[$name];
|
||||
@@ -449,7 +449,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
foreach ($this->registerBundles() as $bundle) {
|
||||
$name = $bundle->getName();
|
||||
if (isset($this->bundles[$name])) {
|
||||
throw new \LogicException(sprintf('Trying to register two bundles with the same name "%s"', $name));
|
||||
throw new \LogicException(sprintf('Trying to register two bundles with the same name "%s".', $name));
|
||||
}
|
||||
$this->bundles[$name] = $bundle;
|
||||
}
|
||||
@@ -473,7 +473,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
*/
|
||||
protected function getContainerClass()
|
||||
{
|
||||
$class = \get_class($this);
|
||||
$class = static::class;
|
||||
$class = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).str_replace('.', '_', ContainerBuilder::hash($class)) : $class;
|
||||
$class = $this->name.str_replace('\\', '_', $class).ucfirst($this->environment).($this->debug ? 'Debug' : '').'Container';
|
||||
|
||||
@@ -510,7 +510,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
$cachePath = $cache->getPath();
|
||||
|
||||
// Silence E_WARNING to ignore "include" failures - don't use "@" to prevent silencing fatal errors
|
||||
$errorLevel = error_reporting(\E_ALL ^ \E_WARNING);
|
||||
$errorLevel = error_reporting(E_ALL ^ E_WARNING);
|
||||
|
||||
try {
|
||||
if (file_exists($cachePath) && \is_object($this->container = include $cachePath)
|
||||
@@ -530,47 +530,20 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
try {
|
||||
is_dir($cacheDir) ?: mkdir($cacheDir, 0777, true);
|
||||
|
||||
if ($lock = fopen($cachePath, 'w')) {
|
||||
chmod($cachePath, 0666 & ~umask());
|
||||
if ($lock = fopen($cachePath.'.lock', 'w')) {
|
||||
flock($lock, LOCK_EX | LOCK_NB, $wouldBlock);
|
||||
|
||||
if (!flock($lock, $wouldBlock ? LOCK_SH : LOCK_EX)) {
|
||||
fclose($lock);
|
||||
} else {
|
||||
$cache = new class($cachePath, $this->debug) extends ConfigCache {
|
||||
public $lock;
|
||||
$lock = null;
|
||||
} elseif (!\is_object($this->container = include $cachePath)) {
|
||||
$this->container = null;
|
||||
} elseif (!$oldContainer || \get_class($this->container) !== $oldContainer->name) {
|
||||
flock($lock, LOCK_UN);
|
||||
fclose($lock);
|
||||
$this->container->set('kernel', $this);
|
||||
|
||||
public function write($content, array $metadata = null)
|
||||
{
|
||||
rewind($this->lock);
|
||||
ftruncate($this->lock, 0);
|
||||
fwrite($this->lock, $content);
|
||||
|
||||
if (null !== $metadata) {
|
||||
file_put_contents($this->getPath().'.meta', serialize($metadata));
|
||||
@chmod($this->getPath().'.meta', 0666 & ~umask());
|
||||
}
|
||||
|
||||
if (\function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN)) {
|
||||
opcache_invalidate($this->getPath(), true);
|
||||
}
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
flock($this->lock, LOCK_UN);
|
||||
fclose($this->lock);
|
||||
}
|
||||
};
|
||||
$cache->lock = $lock;
|
||||
|
||||
if (!\is_object($this->container = include $cachePath)) {
|
||||
$this->container = null;
|
||||
} elseif (!$oldContainer || \get_class($this->container) !== $oldContainer->name) {
|
||||
$this->container->set('kernel', $this);
|
||||
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
@@ -634,7 +607,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
}
|
||||
|
||||
$this->dumpContainer($cache, $container, $class, $this->getContainerBaseClass());
|
||||
unset($cache);
|
||||
|
||||
if ($lock) {
|
||||
flock($lock, LOCK_UN);
|
||||
fclose($lock);
|
||||
}
|
||||
|
||||
$this->container = require $cachePath;
|
||||
$this->container->set('kernel', $this);
|
||||
|
||||
@@ -710,10 +688,10 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
foreach (['cache' => $this->warmupDir ?: $this->getCacheDir(), 'logs' => $this->getLogDir()] as $name => $dir) {
|
||||
if (!is_dir($dir)) {
|
||||
if (false === @mkdir($dir, 0777, true) && !is_dir($dir)) {
|
||||
throw new \RuntimeException(sprintf("Unable to create the %s directory (%s)\n", $name, $dir));
|
||||
throw new \RuntimeException(sprintf('Unable to create the "%s" directory (%s).', $name, $dir));
|
||||
}
|
||||
} elseif (!is_writable($dir)) {
|
||||
throw new \RuntimeException(sprintf("Unable to write in the %s directory (%s)\n", $name, $dir));
|
||||
throw new \RuntimeException(sprintf('Unable to write in the "%s" directory (%s).', $name, $dir));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -802,6 +780,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
'as_files' => true,
|
||||
'debug' => $this->debug,
|
||||
'build_time' => $container->hasParameter('kernel.container_build_time') ? $container->getParameter('kernel.container_build_time') : time(),
|
||||
'preload_classes' => array_map('get_class', $this->bundles),
|
||||
]);
|
||||
|
||||
$rootCode = array_pop($content);
|
||||
|
||||
2
vendor/symfony/http-kernel/LICENSE
vendored
2
vendor/symfony/http-kernel/LICENSE
vendored
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2004-2019 Fabien Potencier
|
||||
Copyright (c) 2004-2020 Fabien Potencier
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
4
vendor/symfony/http-kernel/Log/Logger.php
vendored
4
vendor/symfony/http-kernel/Log/Logger.php
vendored
@@ -79,7 +79,7 @@ class Logger extends AbstractLogger
|
||||
}
|
||||
|
||||
$formatter = $this->formatter;
|
||||
fwrite($this->handle, $formatter($level, $message, $context));
|
||||
@fwrite($this->handle, $formatter($level, $message, $context));
|
||||
}
|
||||
|
||||
private function format(string $level, string $message, array $context): string
|
||||
@@ -101,6 +101,6 @@ class Logger extends AbstractLogger
|
||||
$message = strtr($message, $replacements);
|
||||
}
|
||||
|
||||
return sprintf('%s [%s] %s', date(\DateTime::RFC3339), $level, $message).\PHP_EOL;
|
||||
return sprintf('%s [%s] %s', date(\DateTime::RFC3339), $level, $message).PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
2
vendor/symfony/http-kernel/README.md
vendored
2
vendor/symfony/http-kernel/README.md
vendored
@@ -9,7 +9,7 @@ an advanced CMS system (Drupal).
|
||||
Resources
|
||||
---------
|
||||
|
||||
* [Documentation](https://symfony.com/doc/current/components/http_kernel/index.html)
|
||||
* [Documentation](https://symfony.com/doc/current/components/http_kernel.html)
|
||||
* [Contributing](https://symfony.com/doc/current/contributing/index.html)
|
||||
* [Report issues](https://github.com/symfony/symfony/issues) and
|
||||
[send Pull Requests](https://github.com/symfony/symfony/pulls)
|
||||
|
||||
Reference in New Issue
Block a user