Я пишу новую систему бронирования, увидев, как я написал ранее, теперь лет лет и выглядит дрянной. Я хочу написать тот, который очень гибкий и портативный, и я хочу использовать классы.Мне нужно понять классы
Я новичок в классах и ООП на языке php, ранее я написал один класс, и все прошло хорошо. Однако теперь я смущаюсь с этим. Это то, что у меня есть до сих пор:
class Order
{
protected $require_gender = false;
protected $require_age = false;
protected $require_names = false;
protected $require_address = false;
protected $require_contact = false;
protected $require_dates = false;
protected $require_additional = false;
function __construct()
{
foreach(func_get_args() as $arg)
{
switch($arg)
{
case "names":
case "name": $this->require_names = true; break;
case "age": $this->require_age = true; break;
case "mf":
case "gender": $this->require_gender = true; break;
case "address": $this->require_address = true; break;
case "contact": $this->require_contact = true; break;
case "date":
case "dates": $this->require_dates = true; break;
case "additional": $this->require_additional = true; break;
}
}
}
}
class Person extends Order
{
private $gender;
private $age;
private $names = array('first' => "", 'last' => "", 'full' => "");
private $address = array( '1' => "",
'2' => "",
'3' => "",
'4' => "",
'Postcode' => "",
'Country' => "");
private $contact = array('telephone' => "", 'email' => "");
private $dates = array();
private $additional;
private $active;
function setGender($var) {$this->gender = $var;}
function setAge($var) {$this->age = $var;}
function setNames($var) {$this->names = $var;}
function setAddress($var) {$this->address = $var;}
function setContact($var) {$this->contact = $var;}
function setDates($var) {$this->dates = $var;}
function setAdditional($var) {$this->additional = $var;}
function setActive($var) {$this->actrive = $var;}
}
До сих пор, я думаю, так хорошо. Но теперь я смущен. Поскольку я решил, что так называемый «суперкласс» или родительский, будет заказ клиентов. Поскольку это то, что они делают, они заказывают билеты. А затем под ними нужно добавить столько людей, сколько они захотят.
Я также хочу (чтобы сделать его переносным) уметь устанавливать требования, для каждой системы бронирования это используется, так как требования необходимо будет изменить. Не все хотят знать даты, например, или почтовый адрес. Это не зависит от человек, но каждый раз, когда этот код используется. Так я понял, логически я бы написать:
$order = new Order("names","address","dates");
$p = new Person();
Тогда, я бы создание new Order
с требованиями, которые я хочу использовать names
, address
и dates
. Таким образом, я решил, что объект человека будет реагировать соответствующим образом и только позволит устанавливать эти вещи и только обрабатывать эти параметры, когда их просят. Но потом я узнаю, что когда я создаю new Person()
, он автоматически запускает class Orders()
! Который я не хочу этого делать. Я хочу, чтобы Orders()
был повелителем, который устанавливает все требования и, как правило, управляет всем порядком, а человек просто должен быть человеком в этом порядке.
Я не уверен, что моя проблема в том, что я использую extend
вместо implements
или что-то в этом роде, но может ли кто-нибудь объяснить, что я должен менять или делать дальше, пожалуйста? Я очень хочу учиться.
Человек не является орденом. – Gordon