@Kimel

Неявное наследование FZ2 PHP5?

namespace Album\Model;

use Zend\Db\TableGateway\TableGateway;

class AlbumTable
{
    protected $tableGateway;

    public function __construct(TableGateway $tableGateway)
    {
        $this->tableGateway = $tableGateway;
    }
   public function fetchAll()
    {
        $resultSet = $this->tableGateway->select();
        return $resultSet;
    }


Можете пожалуйста объяснить. Изучаю ZF2. Я не понимаю вот этой строки
$resultSet = $this->tableGateway->select();
Мы присваиваемым переменной $resultSet значение непонятного происхождения. $this->tableGateway- это понятно, мы её объявили в самом начале, а откуда select(); ?? Наш класс же не наследует ничего, откуда этот метод?
  • Вопрос задан
  • 2378 просмотров
Решения вопроса 1
Sander_Li
@Sander_Li
Backend developer
При создания объекта AlbumTable, через конструктор передается объект с интерфейсом TableGateway и сохраняется в свойстве $tableGateway. В переданном объекте и находится метод select(). При вызове метода fetchAll() созданный объект делегирует задачу переданному через конструктор объекту с типом TableGateway

Советую посмотреть паттерн декоратор
А почитать можно в этой книге.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы