Я перенаправляю все http-запрос в файл index.php, router.php и другие файлы configure, вызываемые index.php, у меня есть маршрутизатор, который будет искать обработчик, если файл существует, но мне интересно, как я могу получить доступ к переменной обработчика в моем контроллере.Как сделать переменную доступной для других включенных файлов
Вот мой index.php, будет включать в себя все конфигурационный файл, как дб и сайт установки
index.php
require_once ('include/config.inc.php');
require_once ('include/mysql.inc.php');
require_once ('include/shared_function.inc.php');
require_once ('include/router.inc.php');
Вот мой маршрутизатор будет проверять для обработчиков если существует.
router.php
front_controller(){
if(file_exists('handlers/login-handler.php')){
include_once('handlers/login-handler.php');
}
include_once('login.php');
}
front_controller();
Вот файл я обрабатывать запрос, как правило, я буду держать массив ошибок для отображения обратно в виде
обработчики/войти в обработчик .php
//initialise variable to keep error
$errors=array();
if(request==post){
...
//validate post data
...
}
после вызова обработчиков, вот мой контроллер, который отобразит форму или результат.
login.php
//here comes the error , undefined variable
print_r($errors);
Пожалуйста, предложите мне хороший способ преодолеть эту проблему ...
Попробуйте объявить $ errors = array(); в router.php до if (file_exists ...). Есть функция вокруг кода? –
@MarcelBalzer Спасибо за ваш ответ, весь код находится внутри функции call front_controller() –
Я ищу дружелюбный подход, потому что я буду использовать его в качестве задней кости для большого приложения –