From 9ec24c3ec868e22be742720ee1a6fbc4aa242fe5 Mon Sep 17 00:00:00 2001 From: Tim Windelschmidt Date: Wed, 28 Nov 2018 17:40:57 +0100 Subject: [PATCH 1/4] Add a very dirty way to register the Files from registerResource --- Bootstraps/Symfony.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Bootstraps/Symfony.php b/Bootstraps/Symfony.php index 748e696..599e9dd 100644 --- a/Bootstraps/Symfony.php +++ b/Bootstraps/Symfony.php @@ -2,6 +2,7 @@ namespace PHPPM\Bootstraps; +use PHPPM\ProcessSlave; use PHPPM\Symfony\StrongerNativeSessionStorage; use PHPPM\Utils; use Symfony\Component\HttpFoundation\Request; @@ -87,6 +88,29 @@ public function getApplication() $app->booted = true; }, $app); + Utils::bindAndCall(function () use ($app) { + $container = $app->container; + + $containerClassName = substr(strrchr(get_class($app->container), "\\"), 1); + $metaName = $containerClassName . '.php.meta'; + + Utils::bindAndCall(function () use ($container) { + $container->publicContainerDir = $container->containerDir; + }, $container); + + $metaContent = file_get_contents($app->container->publicContainerDir . '/../' . $metaName); + + $containerMetadata = unserialize($metaContent); + + $files = []; + foreach ($containerMetadata as $entry) { + $fileResourceClass = 'Symfony\Component\Config\Resource\FileResource'; + if ($entry instanceof $fileResourceClass) { + ProcessSlave::$slave->registerFile($entry->__toString()); + } + } + }, $app); + if ($trustedProxies = getenv('TRUSTED_PROXIES')) { Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); } From 48427d2c0d095ec5f77a405798b21ba720236c63 Mon Sep 17 00:00:00 2001 From: Tim Windelschmidt Date: Thu, 29 Nov 2018 18:23:09 +0100 Subject: [PATCH 2/4] Use register_file --- Bootstraps/Symfony.php | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/Bootstraps/Symfony.php b/Bootstraps/Symfony.php index 599e9dd..e9184cb 100644 --- a/Bootstraps/Symfony.php +++ b/Bootstraps/Symfony.php @@ -2,10 +2,10 @@ namespace PHPPM\Bootstraps; -use PHPPM\ProcessSlave; use PHPPM\Symfony\StrongerNativeSessionStorage; use PHPPM\Utils; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\Config\Resource\FileResource; use function PHPPM\register_file; /** @@ -88,28 +88,29 @@ public function getApplication() $app->booted = true; }, $app); - Utils::bindAndCall(function () use ($app) { - $container = $app->container; + if ($this->debug) { + Utils::bindAndCall(function () use ($app) { + $container = $app->container; - $containerClassName = substr(strrchr(get_class($app->container), "\\"), 1); - $metaName = $containerClassName . '.php.meta'; + $containerClassName = substr(strrchr(get_class($app->container), "\\"), 1); + $metaName = $containerClassName . '.php.meta'; - Utils::bindAndCall(function () use ($container) { - $container->publicContainerDir = $container->containerDir; - }, $container); + Utils::bindAndCall(function () use ($container) { + $container->publicContainerDir = $container->containerDir; + }, $container); - $metaContent = file_get_contents($app->container->publicContainerDir . '/../' . $metaName); + $metaContent = file_get_contents($app->container->publicContainerDir . '/../' . $metaName); - $containerMetadata = unserialize($metaContent); + $containerMetadata = unserialize($metaContent); - $files = []; - foreach ($containerMetadata as $entry) { - $fileResourceClass = 'Symfony\Component\Config\Resource\FileResource'; - if ($entry instanceof $fileResourceClass) { - ProcessSlave::$slave->registerFile($entry->__toString()); + foreach ($containerMetadata as $entry) { + $fileResourceClass = 'Symfony\Component\Config\Resource\FileResource'; + if ($entry instanceof FileResource) { + register_file($entry->__toString()); + } } - } - }, $app); + }, $app); + } if ($trustedProxies = getenv('TRUSTED_PROXIES')) { Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); @@ -121,7 +122,7 @@ public function getApplication() return $app; } - + /** * Returns the vendor directory containing autoload.php * From 8945a33a7a79761fca483c64a236f17cf8eb8a13 Mon Sep 17 00:00:00 2001 From: Fionera Date: Fri, 30 Nov 2018 18:52:43 +0100 Subject: [PATCH 3/4] remove unused variable --- Bootstraps/Symfony.php | 1 - 1 file changed, 1 deletion(-) diff --git a/Bootstraps/Symfony.php b/Bootstraps/Symfony.php index e9184cb..32e76b6 100644 --- a/Bootstraps/Symfony.php +++ b/Bootstraps/Symfony.php @@ -104,7 +104,6 @@ public function getApplication() $containerMetadata = unserialize($metaContent); foreach ($containerMetadata as $entry) { - $fileResourceClass = 'Symfony\Component\Config\Resource\FileResource'; if ($entry instanceof FileResource) { register_file($entry->__toString()); } From 6a55fe08ddd61765864329e63f1b04d2d7772ed0 Mon Sep 17 00:00:00 2001 From: Tim Windelschmidt Date: Sun, 2 Dec 2018 21:21:33 +0100 Subject: [PATCH 4/4] Fixing the Tests --- Bootstraps/Symfony.php | 11 ++++++++++- tests/SymfonyMocks/Container.php | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Bootstraps/Symfony.php b/Bootstraps/Symfony.php index 32e76b6..4684621 100644 --- a/Bootstraps/Symfony.php +++ b/Bootstraps/Symfony.php @@ -99,7 +99,16 @@ public function getApplication() $container->publicContainerDir = $container->containerDir; }, $container); - $metaContent = file_get_contents($app->container->publicContainerDir . '/../' . $metaName); + if ($container->publicContainerDir === null) { + return; + } + + $metaContent = @file_get_contents($app->container->publicContainerDir . '/../' . $metaName); + + // Cannot read the Metadata, returning + if ($metaContent === false) { + return; + } $containerMetadata = unserialize($metaContent); diff --git a/tests/SymfonyMocks/Container.php b/tests/SymfonyMocks/Container.php index 9f27388..4467305 100644 --- a/tests/SymfonyMocks/Container.php +++ b/tests/SymfonyMocks/Container.php @@ -4,6 +4,8 @@ class Container { + private $containerDir; + public function has($service) { return false;