From 7b65a93621f01987b3fa7fbaf1d25bc60dec82ec Mon Sep 17 00:00:00 2001 From: Denis Zunke Date: Fri, 17 May 2024 21:11:27 +0200 Subject: [PATCH] Add working directory to runtime configuration --- panaly | 4 ++++ src/Configuration/RuntimeConfiguration.php | 14 +++++++++++--- tests/Configuration/RuntimeConfigurationTest.php | 12 ++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/panaly b/panaly index 6962cd3..3f61548 100755 --- a/panaly +++ b/panaly @@ -36,6 +36,10 @@ include $_composer_autoload_path ?? __DIR__ . '/vendor/autoload.php'; $runtimeConfiguration = new Configuration\RuntimeConfiguration(); $runtimeConfiguration->setLogger(new ConsoleLogger($io)); + $runtimeConfiguration->getLogger()->debug( + 'The working directory registered is "{workingDirectory}"', + ['workingDirectory' => $runtimeConfiguration->getWorkingDirectory()], + ); $configurationFile = (new Configuration\ConfigurationFileLoader())->loadFromFile( $runtimeConfiguration->getFileProvider(), diff --git a/src/Configuration/RuntimeConfiguration.php b/src/Configuration/RuntimeConfiguration.php index c65ac7c..fe35de1 100644 --- a/src/Configuration/RuntimeConfiguration.php +++ b/src/Configuration/RuntimeConfiguration.php @@ -16,12 +16,14 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use function array_key_exists; +use function getcwd; class RuntimeConfiguration { private EventDispatcherInterface $eventDispatcher; private FileProvider $fileProvider; private LoggerInterface $logger; + private string $workingDirectory; /** @var list */ private array $loadedPlugins = []; @@ -34,9 +36,10 @@ class RuntimeConfiguration public function __construct() { - $this->eventDispatcher = new EventDispatcher(); - $this->fileProvider = new FileProvider(); - $this->logger = new NullLogger(); + $this->eventDispatcher = new EventDispatcher(); + $this->fileProvider = new FileProvider(); + $this->logger = new NullLogger(); + $this->workingDirectory = (string) getcwd(); } public function setLogger(LoggerInterface $logger): void @@ -59,6 +62,11 @@ public function getFileProvider(): FileProvider return $this->fileProvider; } + public function getWorkingDirectory(): string + { + return $this->workingDirectory; + } + public function addPlugin(Plugin $plugin): void { $this->loadedPlugins[] = $plugin; diff --git a/tests/Configuration/RuntimeConfigurationTest.php b/tests/Configuration/RuntimeConfigurationTest.php index df2b885..b3e6175 100644 --- a/tests/Configuration/RuntimeConfigurationTest.php +++ b/tests/Configuration/RuntimeConfigurationTest.php @@ -11,8 +11,20 @@ use Panaly\Plugin\Plugin\Storage; use PHPUnit\Framework\TestCase; +use function getcwd; + class RuntimeConfigurationTest extends TestCase { + public function testThatTheWorkingDirectoryIsCorrectlyInitialized(): void + { + $configuration = new RuntimeConfiguration(); + + self::assertSame( + getcwd(), + $configuration->getWorkingDirectory(), + ); + } + public function testThatAddingMetricIsWorking(): void { $metric = self::createStub(Metric::class);