Классы в 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"

}

php class extends public private abstract protected

просмотров: 952