Как все происходит на самом деле? Какие области видимости? Зависит ли это от вложенности файлов в системе? Зависят ли области видимости от "вложенности" include/require? Влияет ли на include/require .htaccess
Допустим, я с индексной страницы подключаю Config.php, лежащий в ./core
Config.php подключает файлы из core
Потом подключаю с индексной же страницы модули ./customer/index.php или /admin/index.php
И постоянно сталкиваюсь с недоступностью каких-либо переменных, методов и даже классов
Причем логики никакой не прослеживается
Как это все реально работает? Как правильно подключать модули?
UPD 1
Файловая структура:
/root
---index.php
---action.php
---/core
------config.php
------core.php
------utils.php
---/customer
------index.php
------action.php
core/config.php<?
require_once "core.php";
require_once "utils.php";
?>
core/core.php<?
require_once "utils.php";
?>
core/utils.php<?
function prepare_db_val()
{
...
}
?>
index.php<?
require_once "core/config.php";
if( isset($_GET['act']))
{
require_once "action.php"; // не работает
require_once "customer/index.php"; // работает!
}
?>
customer/index.php<?
if( isset($_GET['act']))
{
require_once "action.php";
}
?>
action.php, costomer/action.php<?
$db_q = prepare_db_val($_GET['val']);
?>