Вроде бы мелочь, но все-таки спрошу.
У меня есть класс, который работает с внешним сервисом и умеет получать 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']);
}
Когда и почему лучше/хуже использовать первый и второй варианты?
Спасибо.