Классы в PHP (часть 1)
<?php
abstract class autoParts
{
// абстрактный класс автозапчастей
public $name; // название, например фильтр
public $type; // тип, допустим маслянный
public $code; // код по производителю например "OC95"
public $mfa; // производитель автозапчасти
abstract function getID(); // обязательная функция, получить ID в базе данных
}
class autoPart extends autoParts
{
// создаём класс автозапчасть на основе абстрактного класса автоапчастей
protected $dbID; // приватная ID конкретной автозапчаси в базе
public function getID()
{
// предположим что здесь алгоритм запроса к базе для получения ID автозапчасти
if ((isset($this->code)) && (isset($this->mfa))) {
// предположим что выполнен запрос в базу по коду и бренду производителя
$this->dbID = 1; // и получен ID автозапчасти в базе
self::getType();
self::getName();
return $this->dbID;
} else {
// якобы не нашли
return null;
}
}
protected function getName()
{
// запрос к базе по ID автзапчасти и получение ее названия
if ($this->dbID == 1) {
$this->name = 'Фильтр';
}
return $this->name;
}
private function getType()
{
// запрос к базе по ID автзапчасти и получение ее типа
if ($this->dbID == 1) {
$this->type = "маслянный";
}
return $this->type;
}
public function getTradeName()
{
return $this->name . ' ' . $this->type . ' ' . $this->mfa . ' [' . $this->code . ']';
}
public function setCode($codeUser)
{
$this->code = $codeUser;
}
public function setMfa($mfaUser)
{
$this->mfa = $mfaUser;
}
}
$part = new autoPart(); // создаём объект автозапчасти
$part->setCode('OC95'); // у нас есть код предположим полученный от пользователя
$part->setMfa('Knecht'); // и производитель определённый пользователем
if ($part->getID()) { // если есть результат "поиска"
echo $part->getTradeName()."\n"; // Фильтр маслянный Knecht [OC95]
}
var_dump($part);
object(autoPart)#1 (5) {
["dbID":protected]=>
int(1)
["name"]=>
string(12) "Фильтр"
["type"]=>
string(18) "маслянный"
["code"]=>
string(4) "OC95"
["mfa"]=>
string(6) "Knecht"
}
просмотров: 1029