2016-06-27 3 views
-1

Привет, У меня возникла проблема с моим шаблоном php. Проблема заключается в том, что когда я открываю файл index.php, он ничего не показывает. Я не уверен, но я думаю, что проблема связана с шаблонный класс
template.php:php template class не работает

<?php 
class Template { 
    protected $template; 
    protected $vars = array(); 
    public function __construct($template){ 
     $this->template = $template; 
    } 
    public function __get($key){ 
     return $this->vars[$key]; 
    } 
public function __set($key, $value){ 
    $this->vars[$key] = $value; 
} 
public function __toString(){ 
    extract($this->vars); 
    chdir(dirname($this->template)); 
    ob_start(); 
    include basename($this->template); 
    return ob_get_clean(); 
} 
} 
?> 

Frontpage:

<?php include('includes/header.php'); ?> 
test 
<?php include('includes/footer.php'); ?> 

index.php:

<?php 
require 'ini.php'; 
$template = new Template('templates/frontpage.php'); 
echo $template; 
?> 

ini.php:

<?php 
session_start(); 
function __autoload ($class_name){ 
    require_once('libraries/'.$class_name'.php'); 
} 
?> 

Примечание: frontpage.php работает правильно.

+1

Есть ли ошибки на вашей странице? Если нет, убедитесь, что есть сообщение об ошибке: 'error_reporting (E_ALL);'. – Jer

ответ

2

Я положил свой код в моем локальном веб-сервере и проверить на журналы апач ошибок (что вы должны были сделать), и вот ошибка:

PHP Parse error: syntax error, unexpected ''.php'' (T_CONSTANT_ENCAPSED_STRING) in /var/www/html/template/ini.php on line 4

проблема являются:

require_once('libraries/'.$class_name '.php'); 

вместо

require_once('libraries/'.$class_name . '.php'); 

, когда я исправил, была еще одна ошибка:

PHP Fatal error: require_once(): Failed opening required 'libraries/Template.php' (include_path='.:/usr/share/php') in /var/www/html/template/ini.php on line 4

Так что все ваши классы внутри каталога библиотек должны иметь свою первую букву имени upercase.

переименовывать

библиотеки/template.php

с

библиотек/template.php

Примечание: вы должны заменить функцию "требуют" с "require_once", чтобы избежать включения кратной вопросы.