@lemonlimelike

Как работает такие цепочки вызовов методов?

Всем привет! Давно пишу на php. Используя фреймворки типа laravel, symfony разрабатываю сайты. Но так и не научился писать такие цепочки вызовов методов
$user = DB::table('users')->where('name', 'John')->first();

Это пример из доки по laravel. Не могу понять как после вызова table() вызывается where() и потом first(). Как это реализовано? Можно пожалуйста пример? Или ткните на статью где об этом говорится. С радостью почитаю.
  • Вопрос задан
  • 54 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Всё очень просто. DB::table() возвращает экземпляр класса Query\Builder, у которого есть методы where, first и т.д. Каждый из этих методов возвращает тот же экземпляр, return $this;
Ответ написан
TNPTSYWWCC
@TNPTSYWWCC
And I Told Them I Invented Times New Roman
Можно пожалуйста пример?

<?php

class Magick {
  private $name;
  private $description;
  private $age;
  private $phone;

  public function setName ($name) {
      $this->name = $name;
      return $this;
  }
  
  public function setDescription ($description) {
      $this->description = $description;
      return $this;
  }
  
  public function setAge ($age) {
      $this->age = $age;
      return $this;
  }
  
  public function setPhone ($phone) {
      $this->phone = $phone;
      return $this;
  }
  
  public function displayData () {
      echo "You name: ", $this->name, PHP_EOL;
      echo "You description: ", $this->description, PHP_EOL;
      echo "You age: ", $this->age, PHP_EOL;
      echo "You phone: ", $this->phone, PHP_EOL;
  }
}

$magick = new Magick;

$magick->setName("Vasya")
  ->setDescription("I love beer")
  ->setAge("46")
  ->setPhone("+1488")
  ->displaydata();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы