我正在学习教程,在设置完所有内容后,我得到了:



这是我的配置文件:

<?php
// SITE_ROOT contains the full path to the tshirtshop folder
define('SITE_ROOT', dirname(dirname(__FILE__)));
// Application directories
define('PRESENTATION_DIR', SITE_ROOT . '/presentation/');
define('BUSINESS_DIR', SITE_ROOT . '/business/');
// Settings needed to configure the Smarty template engine
define('SMARTY_DIR', SITE_ROOT . '/libs/smarty/');
define('TEMPLATE_DIR', PRESENTATION_DIR . 'templates');
define('COMPILE_DIR', PRESENTATION_DIR . 'templates_c');
define('CONFIG_DIR', SITE_ROOT . '/include/configs');
?>

我的目录结构是:
mydomain.com/test/include
mydomain.com/test/libs
mydomain.com/test/presentation

我该如何解决这个错误?

最佳答案

这意味着有一个扩展使用 __construct 方法的 Smarty 类的类,它需要包含以下内容:

public function __construct() {
    parent::__construct();
}

这将调用看起来像这样的 smarty 构造方法:
public function __construct()
{
        // selfpointer need by some other class methods
        $this->smarty = $this;
    if (is_callable('mb_internal_encoding')) {
        mb_internal_encoding(SMARTY_RESOURCE_CHAR_SET);
    }
    $this->start_time = microtime(true);
    // set default dirs
    $this->template_dir = array('.' . DS . 'templates' . DS);
    $this->compile_dir = '.' . DS . 'templates_c' . DS;
    $this->plugins_dir = array(SMARTY_PLUGINS_DIR);
    $this->cache_dir = '.' . DS . 'cache' . DS;
    $this->config_dir = '.' . DS . 'configs' . DS;
    $this->debug_tpl = SMARTY_DIR . 'debug.tpl';
    if (isset($_SERVER['SCRIPT_NAME'])) {
        $this->assignGlobal('SCRIPT_NAME', $_SERVER['SCRIPT_NAME']);
    }
}

关于php - Smarty 异常 : "Please use parent::__construct() to call parent constructor",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6306798/

10-11 21:04