На этих страницах я использовал один класс соединения и один класс для хранения логики для страницы. Однако теперь у меня есть страница, где мне нужно использовать несколько классов на основе различных сценариев, которые могут произойти.Как использовать несколько классов без нескольких соединений?
Это то, что я смог сделать, но это похоже на плохую практику. Я искал вокруг, но не могу найти решение. Поэтому мой вопрос в том, что является лучшим способом того, что я пытаюсь сделать.
<?php
require 'class/connect.php';
$db = new Connect();
require 'class/normal-page.php';
require 'class/get-page.php';
?>
<?php if (!isset($_GET['id'])) { ?>
<?php $normalpage = new NormalPage($db); ?>
<?php
} else {
$id = $_GET["id"];
$getpage = new Getpage($id, $db);
?>
<h1><?php echo $getpage->getTitle(); ?></h1>
<p><?php echo $getpage->getDescription(); ?></p>
<?php } ?>
class Normalpage {
function __construct($db) {
$query = 'SELECT something FROM table';
$result = $db->query($query);
}
}
Надеюсь, что информации достаточно, чтобы иметь смысл. Короче говоря, я включаю класс connect и использую переменную в обоих классах.
В дополнение к ответу @ nickb, я бы порекомендовал вам изучить автозагрузку классов. Таким образом, вам не нужно указывать, какие файлы классов вы должны включать, поскольку они загружаются автоматически, см. Http://php.net/manual/en/language.oop5.autoload.php – jeroen
Я думаю, вы можете сделать свой жизнь немного проще с [автозагрузкой] (http://php.net/manual/de/language.oop5.autoload.php). ** Редактирование: ** Как и jeroen написал, в то же время, та же идея;) – hakre