Heim >Backend-Entwicklung >PHP-Tutorial >smarty设置封装问题

smarty设置封装问题

WBOY
WBOYOriginal
2016-06-20 12:37:271299Durchsuche

刚开始看smarty 安装成功了现在想把smarty路径什么的封装到一个拓展类里面不知道为什么老是报错 哪位大神帮忙看一看

Fatal error: Uncaught Error: Call to a member function create() on null in D:\xampps\htdocs\。。。。s\smarty_internal_templatebase.php(109): Smart in D:\xampps\htdocs\xampps\ss\smarty\sysplugins\smarty_internal_templatecompilerbase.php on line 327

define('BASE_PATH',$_SERVER['DOCUMENT_ROOT']);define('SMARTY_PATH','/xampps/ss/smarty/');require BASE_PATH.SMARTY_PATH."Smarty.class.php";          // 调用Smarty文件class SmartyProject extends Smarty{          // 定义类,继承Smarty父类	public function __construct(){                    // 定义构造方法,配置Smarty模板               $this->Smarty();		$this->template_dir = BASE_PATH.SMARTY_PATH."templates/"; // 指定模板文件存储在templates文件夹内		$this->compile_dir = BASE_PATH.SMARTY_PATH."templates_c/";		$this->config_dir = BASE_PATH.SMARTY_PATH."configs/";		$this->cache_dir = BASE_PATH.SMARTY_PATH."cache/";	}}?>


代码手册上直接复制下来的

我的版本是3.1


回复讨论(解决方案)

一般这么写

require('Smarty-3.1.18/libs/Smarty.class.php');class mySmarty extends Smarty {  public $tplname = [];  function __construct($tpl) {	parent::__construct();	$this->template_dir = dirname(__FILE__) . '/buffer/templates/';	$this->compile_dir = dirname(__FILE__) . '/buffer/templates_c/';	$this->config_dir = dirname(__FILE__) . '/buffer/configs/';	$this->cache_dir = dirname(__FILE__) . '/buffer/cache/';   }}

public function __construct(){ 
你重写了构造函数,所以需要调用一下父类的构造函数。

class SmartyProject extends Smarty{          // 定义类,继承Smarty父类    public function __construct(){                    // 定义构造方法,配置Smarty模板       parent::__construct();       $this->Smarty();        $this->template_dir = BASE_PATH.SMARTY_PATH."templates/"; // 指定模板文件存储在templates文件夹内        $this->compile_dir = BASE_PATH.SMARTY_PATH."templates_c/";        $this->config_dir = BASE_PATH.SMARTY_PATH."configs/";        $this->cache_dir = BASE_PATH.SMARTY_PATH."cache/";    }}

谢谢各位 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn