Skip to content

Commit f60cc11

Browse files
authored
Merge pull request #9 from druidfi/get-site-dir-automatically
Get site path automatically without __DIR__
2 parents 5ecf332 + f0cb74e commit f60cc11

File tree

6 files changed

+32
-13
lines changed

6 files changed

+32
-13
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ And then use this as your `sites/default/settings.php`:
2424
<?php
2525

2626
// Use druidfi/omen
27-
extract((new Druidfi\Omen\Reader())->get());
27+
extract(Druidfi\Omen\Reader::get(get_defined_vars()));
2828
```
2929

3030
Or print out all configuration (aka debug):
@@ -33,7 +33,7 @@ Or print out all configuration (aka debug):
3333
<?php
3434

3535
// Print out detected configuration by druidfi/omen
36-
(new Druidfi\Omen\Reader())->show();
36+
Druidfi\Omen\Reader::show(get_defined_vars());
3737
```
3838

3939
See the whole example [here](settings.php).

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
},
2222
"require": {
2323
"php": "^7.4 || ^8.0",
24-
"drupal/core-recommended": "^9.2 || ^10.0",
24+
"drupal/core-recommended": "^9.3 || ^10.0",
2525
"ext-json": "*"
2626
},
2727
"require-dev": {

settings.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
// These files are loaded automatically if found.
1212
//
13-
extract((new Druidfi\Omen\Reader(__DIR__))->getConfiguration());
13+
extract(Druidfi\Omen\Reader::get(get_defined_vars()));
1414

1515
// Here you can still override things
1616

src/DrupalEnvDetector.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,20 @@ class DrupalEnvDetector
66
{
77
public function __construct(string $settings_dir)
88
{
9+
if (PHP_SAPI === 'cli') {
10+
echo "🔥 BC BREAK IN OMEN! 🔥\n";
11+
echo "Update your call in settings.php in ". $settings_dir ."\n";
12+
echo "Old line: extract((new Druidfi\Omen\DrupalEnvDetector(__DIR__))->getConfiguration());\n";
13+
echo "New line: extract(Druidfi\Omen\Reader::get(get_defined_vars()));\n\n";
14+
exit;
15+
}
16+
917
echo "<h1>🔥 BC BREAK IN OMEN! 🔥</h1>";
1018
echo "<p>Update your call in settings.php in ". $settings_dir ."</p>";
1119
echo "<p><strong>Old line:</strong>";
1220
echo "<p><code>extract((new Druidfi\Omen\DrupalEnvDetector(__DIR__))->getConfiguration());</code>";
1321
echo "<p><strong>New line:</strong>";
14-
echo "<p><code>extract((new Druidfi\Omen\Reader(__DIR__))->get());</code>";
22+
echo "<p><code>extract(Druidfi\Omen\Reader::get(get_defined_vars()));</code>";
1523
echo '<p><img src="data:image/jpeg;base64,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" width="251" height="180" alt="YOU CAN DO IT! - Supportive Hedgehog | Meme Generator"></p>';
1624
exit;
1725
}

src/Reader.php

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class Reader
3030
];
3131

3232
private $app_env;
33+
private ?string $app_root;
3334
private ?array $config = [];
3435
private ?array $databases = [];
3536
private string $drupal_version;
@@ -40,10 +41,15 @@ class Reader
4041
private $omen;
4142
private ?array $settings = [];
4243

43-
public function __construct(string $settings_dir)
44+
public function __construct(array $vars)
4445
{
45-
global $config, $databases, $settings;
46+
unset($vars['class_loader']);
47+
extract($vars);
48+
unset($vars);
4649

50+
$settings_dir = $app_root . self::DS . $site_path;
51+
52+
$this->app_root = $app_root;
4753
$this->config = &$config;
4854
$this->databases = &$databases;
4955
$this->settings = &$settings;
@@ -114,12 +120,17 @@ public function __construct(string $settings_dir)
114120
$this->setDatabaseConnection();
115121
}
116122

123+
public static function get(array $vars) : array
124+
{
125+
return (new Reader($vars))->getConf();
126+
}
127+
117128
/**
118129
* Get read configuration.
119130
*
120131
* @return array
121132
*/
122-
public function get() : array
133+
public function getConf() : array
123134
{
124135
$conf = [
125136
'config' => $this->config,
@@ -143,9 +154,10 @@ public function get() : array
143154
/**
144155
* Print out configuration.
145156
*/
146-
public function show()
157+
public static function show(array $vars)
147158
{
148-
$this->printConfiguration($this->get());
159+
$reader = new Reader($vars);
160+
$reader->printConfiguration($reader->getConf());
149161
}
150162

151163
protected function printConfiguration($conf)

tests/BaseCase.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@ abstract class BaseCase extends TestCase
3030
protected function setUp(): void
3131
{
3232
if (!class_exists('Drupal')) {
33-
eval("class Drupal { const VERSION = '9.3.0'; }");
33+
eval("class Drupal { const VERSION = '9.4.0'; }");
3434
}
3535

36-
$detector = new Reader(__DIR__);
37-
$conf = $detector->get();
36+
$conf = Reader::get(['app_root' => '/app/public', 'site_path' => 'site/default']);
3837

3938
/** @var array $config */
4039
/** @var array $settings */

0 commit comments

Comments
 (0)