0

だから私はいくつかの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 関数は、ブートストラップ クラスに配置すると実際に機能しますが、ビュー クラスに配置すると何も機能しません。前もって感謝します!

4

0 に答える 0