У меня есть следующие классы PHP
class.property.php
class.location.php
class.amenity.php
class.category.php
, все четыре класса обрабатывают соответствующие операции CRUD для разных категорий.я хочу реорганизовать свои коды и, следовательно, хочу использовать родительскую дочернюю структуру.
например, я использовал для инициализации классов на каждой странице, как это.
$property = new Property($dbh);
$location = new Location($dbh);
$category = new Category($dbh);
$amenity = new Amenity($dbh);
, а затем я использовал длядоступ к методам и свойствам класса по отдельности, например
$property->user;
$property->contact;
$property->save();
$location->countries();
$location-states();
И так далее, каждый класс выполняется индивидуально, вместо того, чтобы обращаться к нему, как это, я хотел бы использовать его таким образом.
$property = new Property($dbh)
вышедолжен быть родительским классом, а остальные три - дочерним классом, и поэтому я должен иметь доступ ко всем методам и свойствам класса только через родительский класс, например, я должен иметь к нему доступ только следующим образом.
$property->location->countries();
$property->locations->states();
$property->location->countryId;
$property->amenity->name;
$property->amenity->save();
и так далее ..
Я попытался выяснить, как это сделать, и предложил это решение.
class Property{
public $amenity;
public function __construct() {
require_once('class.amenity.php');
$this->amenity = new Amenity;
}
}
class Amenity {
public function create($test) {
return $test;
}
}
теперь, если я хочу получить доступ к методу create () в Amenityкласс, который я просто называю
$property->amenity->create()
, и это работает, однако я хотел бы знать, является ли это правильным методом реализации родительской дочерней структуры или я что-то упустил?