ホームページ >バックエンド開発 >PHPチュートリアル >Smarty 設定のカプセル化の問題

Smarty 設定のカプセル化の問題

WBOY
WBOYオリジナル
2016-06-20 12:37:271296ブラウズ

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/';   }}

皆さん、ありがとう

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。