Задать вопрос
@kirill-93

Какой подход правильнее?

Вроде бы мелочь, но все-таки спрошу.
У меня есть класс, который работает с внешним сервисом и умеет получать access_token, получать и отправлять данные. Чтобы получать данные, токен не нужен, а чтобы изменять, нужен. У меня в голове два варианта реализации:
1) Создаем класс, методы которого возвращают данные, не сохраняя их у себя. Методы могут быть статичными, чтобы обращение к ним было короче, без инициализации объекта. Мы в этом случае получаем данные из одного метода и вручную передаем их в другой метод.
<?php

class Api 
{
  public static function getAccessToken() {
    $token = file_get_contents(...);
    return $token;
  }
 
  public static function getItem($id) {
    $item = file_get_contents('...');
    return $item;
  }

  public static function modifyItem($item, $params) {
    $token = self::getToken();
    //Отправляем запрос на изменение
    curl_init(...);
  }
}

//Где-то в коде
$item = Api::getItem(12);
if ($item->condition) {
  Api::modifyItem($item, ['color' => 'red']);
}


2) Храним данные внутри класса и ничего не возвращаем.
<?php

class Api 
{
  public $item;
  private $token;

  public function getAccessToken() {
    $this->token = file_get_contents(...);
  }
 
  public function getItem($id) {
    $this->item = file_get_contents('...');
  }

  public function modifyItem($params) {
    $this->getToken();
    //Отправляем запрос на изменение
    curl_init(..., $this->item, $params, $this->token);
  }
}

//Где-то в коде
$api = new Api();
$api->getItem(12);
if ($api->item->condition) {
  $api->modifyItem(['color' => 'red']);
}


Когда и почему лучше/хуже использовать первый и второй варианты?
Спасибо.
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя necrodeflorator К ответам на вопрос (3)
@necrodeflorator
Если в getToken есть проверка на isset($this->token), то второй вариант лучше
Ответ написан
Комментировать