だから私はいくつかのOOPをやっていて、思わぬ障害にぶつかりました。別の PHP ファイルでクラスを拡張しようとしています。拡張クラスは動的にロードする必要があります。私はそれを次のように設定しました:
bootstrap.phpファイル:
<?php
class bootstrap{
public $lang;
public $page;
public $action;
public $id;
public $message;
public function __construct() {
$this->buildPage();
}
public function buildPage() {
if($this->page == 'home'){
require_once CONTR . 'view.php';
new view($this->lang, $this->page, $this->action, $this->id, $this->message);
}
}
}
およびview.phpファイル:
class view extends bootstrap{
public $lang;
public $page;
public $action;
public $id;
public $message;
public function __construct($lang, $page, $action, $id, $message) {
parent::__construct();
$this->lang = $lang;
$this->page = $page;
$this->action = $action;
$this->id = $id;
$this->message = $message;
$this->showPage();
}
public function showPage() {
require_once VIEW . 'header.php';
//echo VIEW . 'header.php';
//prepare SQL statements
$page = $this->page;
$name = "name_" . $this->lang;
//SQL statement
$selectdata = mysql_query("SELECT * FROM pages WHERE $name = '$page'");
$result = mysql_fetch_array($selectdata);
//Echo content
if($result["content_$this->lang"] == NULL){
echo "no content";
} else {
echo $result["content_$this->lang"];
}
//Debugging
echo '<br>' . $this->lang;
echo '<br>' . $this->page;
echo '<br>' . $name;
echo '<br>' . $page;
require_once VIEW . 'footer.php';
}
}
--> Index.php
require('front/config.php');
require('front/bootstrap.php');
$site = new bootstrap();
これを行った後、拡張を使用してブートストラップ クラスを介してビュー クラスを呼び出そうとしました。
いろいろなことを試してきましたが、かなり近いと思います。これを解決する方法を知っている人はいますか?showpage 関数は、ブートストラップ クラスに配置すると実際に機能しますが、ビュー クラスに配置すると何も機能しません。前もって感謝します!