ホームページ >バックエンド開発 >PHPチュートリアル >Smarty 設定のカプセル化の問題
Smarty を調べ始めましたが、インストールは成功しました。今度は Smarty パスを拡張クラスにカプセル化したいのですが、なぜエラーが発生し続けるのかわかりません。
致命的エラー: キャッチされないエラー: D:xamppshtdocs の null でメンバー関数 create() を呼び出します。 。 。 。 ssmarty_internal_templatebase.php(109): D のスマート: 3.1
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/"; }}?>
への返信ディスカッション (解決策)
通常はこんな感じ public function __construct(){
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/'; }}皆さん、ありがとう