File Dependency
Konfigurationdatei
<?php declare(strict_types=1);
namespace spriebsch\tfd\modernPhpDevelopment\objectOrientation\decoupling\fileDependency;
return [
'environment' => Environment::DEV,
// ...
];
configuration.php
Environment
ist hier eine einfache enum
:
<?php declare(strict_types=1);
namespace spriebsch\tfd\modernPhpDevelopment\objectOrientation\decoupling\fileDependency;
enum Environment
{
case DEV;
case PROD;
}
Environment.php
Praktisch, dass return so geht.
mit require kann ich die daten laden:
<?php declare(strict_types=1);
namespace spriebsch\tfd\modernPhpDevelopment\objectOrientation\decoupling\fileDependency;
require __DIR__ . '/autoload.php';
require __DIR__ . '/../vendor/autoload.php';
var_dump(require __DIR__ . '/config.php');
require.php
<?php declare(strict_types=1);
namespace spriebsch\tfd\modernPhpDevelopment\objectOrientation\decoupling\fileDependency;
use spriebsch\filesystem\File;
class Something
{
public function __construct(private readonly File $configuration) {}
public function doWork(): void
{
$configuration = $this->configuration->require();
var_dump($configuration['environment']);
}
}
Something.php
<?php declare(strict_types=1);
namespace spriebsch\tfd\modernPhpDevelopment\objectOrientation\decoupling\fileDependency;
use spriebsch\filesystem\Filesystem;
require __DIR__ . '/autoload.php';
require __DIR__ . '/../vendor/autoload.php';
$something = new Something(Filesystem::from(__DIR__ . '/configuration.php'));
var_dump($something);
example.php
<?php declare(strict_types=1);
namespace spriebsch\tfd\modernPhpDevelopment\objectOrientation\decoupling\fileDependency;
use spriebsch\filesystem\Filesystem;
require __DIR__ . '/autoload.php';
require __DIR__ . '/../vendor/autoload.php';
$something = new Something(Filesystem::from(__DIR__ . '/configuration.php'));
var_dump($something);
example-will-fail.php