刚开始看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/"; }}?>
一般这么写
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/"; }}谢谢各位
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号