日期:2014-05-17  浏览次数:20470 次

继承smarty类时遇到的问题,求指导!!
我直接把smarty的libs目录拷进测试项目中,测试项目很简单,有两个文件demo.php和init.inc.php,然后我在init.inc.php做一些配置,比如界定符、模板目录之类,如果是以这种方式:
PHP code

<?php 
    include_once './libs/Smarty.class.php';
    $tpl=new Smarty;
    $tpl->left_delimiter="<!--{";
    $tpl->right_delimiter="}-->";
?>

配置完成后在demo.php中我这样写
PHP code

<?php 
        require_once 'init.inc.php';
        $title="this is a title";
    $content="this is my content";
    $tpl->assign("title",$title);
    $tpl->assign("content",$content);
    $tpl->display("default/test.tpl");
?>

显示没问题
如果是另外做一个继承与smarty类的类mySmarty代码如下,在init.inc.php中
PHP code

       <?php 
    include_once './libs/Smarty.class.php';
    class mySmarty extends Smarty{
        function mySmarty(){
            $this->Smarty();
            $this->template_dir="./templates/";
            $this->compile_dir="./templates_c/";
            $this->config_dir="./configs/";
            $this->cache_dir="./cache/";
            $this->caching=true;
            $this->left_delimiter="<!--{";
            $this->right_delimiter="}-->";
            $this->assign('app_name','mySmartyTest');
        }
    }
       ?>


在demo.php中我做如下的调用和显示
PHP code

<?php
    require_once 'init.inc.php';
    $tpl=new mySmarty;
    $title="this is a title";
    $content="this is my content";
    $tpl->assign("title",$title);
    $tpl->assign("content",$content);
    $tpl->display("default/test.tpl");
?>

则会报500错误,到底怎么回事呢,求高手指导,谢谢!!

------解决方案--------------------
你把 php 的错误显示功能打开,就知道哪里有问题了

继承的
如果是 Smarty 2 应该无大错
如果是 Smarty 3 那就是另一回事了
------解决方案--------------------
俺打工六年,就一个经验告诉你,尽早放弃 smarty 这种没人性的模版引擎。
------解决方案--------------------
因为那东西麻烦死了