PHP: Как правильно создать экземпляр класса внутри класса? (AKA использует класс в классе)

0

Я читаю, что лучший способ использовать свойства класса (database class) в другом классе (html class) - создать экземпляр этого класса внутри класса (html). Что касается, почему, я не уверен... но так или иначе.

Как это делается? У меня есть два сценария, чтобы увидеть, какие из них правильные, а какие - неправильные...

Сценарий A

require( database.php );

class html(){
    private static $db = null;
    private static $page = null;

    public function __construct($id){
        self::bootstrap($id);
    }

    public static function bootstrap($id){
        self::$db = new database();
        self::$page = $db->page($id);
        return self::$page;
    }
}

//$page = new html('hello-world');
//print $page;
print html::bootstrap('hello-world');

Сценарий B

//Class autoloader
spl_autoload_register(function ($class) {
    include $_SERVER['DOCUMENT_ROOT'] . '/class/' . $class . '.php';
});


//Scenario B code
class html(){
    private static $page = null;

    public static function bootstrap($id){
        self::$page = database::page($id);
        return self::$page;
    }
}

print html::bootstrap('hello-world');

Возможно, у вас есть другой сценарий, который подходит, если это неправильный подход

Теги:
class
oop

1 ответ

1
Лучший ответ

Я бы сказал, что сценарий не соответствует действительности, но сценарий B более уместен. Поскольку page была разработана как статический метод в классе database, которая информирует об умышленном использовании метода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню