php - How to include those files which internally include other files?
This is my file structure
\+-- config
| +-- config1.php
| +-- config2.php
\+-- test
| +-- test1
| +-- innerRunner.php
\+-- outerRunner.php
this is config1.php
<?php
require_once 'config/config2.php';
this is config2.php
<?php
function runConfig2(){
echo "control in config2";
}
runConfig2();
this is innerRunner.php
<?php
require_once("../../config/config1.php");
this is outerRunner.php
<?php
require_once("config/config1.php");
When i exceute outerRunner.php then everything works fine but when i run innerRunner.php it shows error
Warning: require_once(config/config2.php): Failed to open stream: No such file or directory in /var/www/config/config1.php on line 2
Fatal error: Uncaught Error: Failed opening required 'config/config2.php' (include_path='.:/usr/local/lib/php') in /var/www/config/config1.php:2 Stack trace: #0 /var/www/test/test1/innerRunner.php(2): require_once() #1 {main} thrown in /var/www/config/config1.php on line 2
Can anyone help me with this?
Here is the link of sandbox for the same:
Link
PS : I can't make any changes in config1 or config2, i need to do something with innerRunner.php only.
Answer
Solution:
in file config config1.php
remove directory config
<?php
require_once './config2.php';
Answer
Solution:
You can do this in innerRunner.php
<?php
#change the current working dir
chdir('/var/www');
require_once("config/config1.php");
#change it back to the current dir
chdir(__DIR__);
But this is really a bad approach to do something like this.
Normaly you should only do require_once 'config2.php';
(config1.php)
in the first place.
There is no real reason to do require_once 'config/config2.php';
there.