$ this-> a-> b-> c-> d, вызывающий методы из суперкласса в php - PullRequest
1 голос
/ 12 апреля 2009

Здравствуйте, я хочу сделать что-то на занятиях

я хочу сделать суперкласс, который является моим классом, расширенным на нем

            ____  database class
           /
chesterx _/______  member class
          \
           \_____  another class   

я хочу вызвать метод, который находится в классе базы данных, как это

$this->database->smtelse();



class Hello extends Chesterx{

  public function ornekFunc(){
     $this->database->getQuery('popularNews');
     $this->member->lastRegistered();
  }

}  

и я хочу вызвать метод с именем родительского класса, когда расширяю свой суперкласс до любого класса

Ответы [ 3 ]

2 голосов
/ 12 апреля 2009

Я не совсем уверен, что вы подразумеваете под последним предложением, но это совершенно верно:

class Chesterx{
 public $database, $member;
 public function __construct(){
   $this->database = new database; //Whatever you use to create a database
   $this->member = new member;
 }
}
1 голос
/ 12 апреля 2009

Рассмотрим шаблон Singleton - он обычно лучше подходит для взаимодействия с базой данных. http://en.wikipedia.org/wiki/Singleton_pattern.

0 голосов
/ 13 апреля 2009

Вы также можете рассмотреть возможность использования методов для получения подобъектов. Преимущество состоит в том, что объекты не инициализируются до тех пор, пока они в них не нуждаются, а также предоставляют гораздо более слабосвязанный код, который позволяет более легко изменять способ инициализации базы данных.

class Chesterx{
   public $database, $member;

   public function getDatabase() {
       if (!$this->database ) {
           $this->database = new database; //Whatever you use to create a database
       }
       return $this->database;
   }

   public function getMember() {
       if (!$this->member) {
           $this->member = new member;
       }
       return $this->member;
   }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...