Правильная работа с ООП в PHP
Просьба помочь мне разобраться с ООП в PHP. Ранее как то мне такой опыт не требовался и ООП старался как-то обойти стороной, но времена меняются как говорится и нужно познавать что то новое. И перед вопросом своим скажу что я знаю и вроде как понимаю и если в чем то ошибусь то если не сложно поправьте пожалуйста. И так ООП у нас записывается в классах
class Test{
}
$test = new Test()
Так же у нас есть методы которые начинаются с function.
Вот представим у меня есть два файла test1.php и test2.php. В test1.php создаем класс для подключения к бд и несколько методов с запросами.
test1.php
class Pdo{
protected $pdo = null;
protected $stmt1 = null;
protected $stmt2 = null;
function __construct () {
try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";charset=".DB_CHAR.";dbname=".DB_NAME,
DB_USER, DB_PASS
);
} catch (Exception $ex) { exit($ex->getMessage()); }
}
function __destruct () {
if ($this->pdo !== null) { $this->pdo = null; }
if ($this->stmt1 !== null) { $this->stmt1 = null; }
if ($this->stmt2 !== null) { $this->stmt2 = null; }
}
function query1 () {
$this->stmt1 = $this->pdo->prepare(
"SELECT *, UNIX_TIMESTAMP(`time`) AS `unix`
FROM `score` ORDER BY `time` DESC LIMIT 1"
);
$this->stmt1->execute();
return $this->stmt1->fetch(PDO::FETCH_ASSOC);
}
function query2 () {
$this->stmt2 = $this->pdo->prepare(
"SELECT *, UNIX_TIMESTAMP(`time`) AS `unix`
FROM `score` ORDER BY `time` DESC LIMIT 1"
);
$this->stmt2->execute();
return $this->stmt2->fetch(PDO::FETCH_ASSOC);
}
}
Скажу сразу что бы не было вопросов в методах query1 и query2 один и тот же запрос для примера и не более того. И вот как мне правильно подключить class из test1.php в class test2.php
test2.php
class Test{
function test1() {
// Тут выводим какой то html код в котором нужно выполнить
// в первой половине кода query1 ну а во второй query2
//
// Простой пример
echo "<div>". query1 ."</div>";
echo "<div>". query2 ."</div>";
//
// И тут же сразу спрошу что бы вызвать из этого метода метод test2
// Так должно выглядить?
$this->test2();
}
function test2() {
***
}
}
Если можно на вопросы не много развернуто ответить заранее Вам благодарен. Вижу что не очень сложно. Вот только вроде бы на первый взгляд простые моменты не как не поддаются пониманию.
Ответы (1 шт):
Сейчас вроде бы не много разобрался хотел бы что бы сказали правильно ли делаю или нет. Так же два файла test1.php и test2.php
test1.php я переписывать не буду так как оно осталось неизменным ⇧
test2.php
<?php
include 'test1.php';
class Test{
protected $var;
function __construct(Pdo $var2){
$this->var = $var2;
}
function __destruct(){
if($this->var !== null){ $this->var = null; }
}
function method1(){
echo "<div>" . $this->var->query1() . "</div>";
echo "<div>" . $this->var->query2() . "</div>";
}
}
$res = new Test(new Pdo);
$res->method1();
?>