Как лучше обрабатывать результат?

Доброй ночи. Подскажите пожалуйста. У меня есть MySQL таблица A. В этой таблице есть поле A1. В этом поле хранятся данные в JSON. Где правильнее будет декодировать это значение?
Допустим есть таблица
Tasks
id (int) | name (text) | params (text/json)
1 Вариант
Получаем данные из таблицы и декодируем поле params вручную только когда понадобятся его значения
Например:
$query = mysql_query('SELECT * FROM `tasks`');
while($task = mysql_fetch_assoc($query))
{
    $taskParams = json_decode($task['params']);
    echo $taskParams['time_start'];
}


2 Вариант
Получаем данные из таблицы, создаём объект для каждой строки, который автоматически обработает поля, что бы не делать это постоянно вручную
Например:
class Task 
{
    public $id;
    public $name;
    public $params;
    
    function __construct($task)
    {
        $this->id = $task['id'];
        $this->name = $task['name'];
        $this->params = json_decode($task['params']);
    }
}

$query = mysql_query('SELECT * FROM `tasks`');
while($taskOriginal = mysql_fetch_assoc($query))
{
    $task = new Task($taskOriginal);
    echo $task->params['time_start'];
}


Это простейшие примеры, что бы иметь представление.
Мне второй вариант больше нравится. Как бы сделали вы?
  • Вопрос задан
  • 2443 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
2 вариант, но без публичны свойств - все по хардкору через геттеры сеттеры. В идеале даже заблокировал бы конструктор при помощи прокси-класса. А если совсем серьезно - взял бы Doctrine.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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