Включить однажды ob_get_contents неопределенные переменные
В моем admin.php я установил свой $controller
и он прекрасно работает как динамическая CMS, проблема в том, что файлы, которые я использую в качестве шаблонов, не распознаются $controller
в них.
admin.php
include_once("configuration.php");
require("cms.php");
$controller = new CMS();
...
$controller->template("body");
cms.php
Class CMS{
/*New template function*/
function template($file){
if( isset($file) && file_exists($file.".php") ){
include_once($file.".php");
}else{
echo "";
}
}
/*Old template function*/
function template($file){
if(isset($file) && file_exists($file.".php")){
ob_start();
include($file.".php");
$template = ob_get_contents();
return $template;
} else {
echo "";
}
}
}
Любая страница шаблона
var_dump($controller);
Какой отголосок Notice: Undefined variable: controller in
Будет проще, если я смогу $controller
быть доступным без необходимости каждый раз звонить. Я что-то здесь упускаю, почему $controller
неопределен на любой странице шаблона?
ОБНОВИТЬ
То, что мне показалось работающим, это снова добавить var
Class CMS{
/*New template function*/
function template($file){
if( isset($file) && file_exists($file.".php") ){
$controller = $this;
include_once($file.".php");
}else{
echo "";
}
}
}
это приемлемо?