Как обрабатывать добавление поста в классах? Всем привет! Подскажите, как (скорее всего "ГДЕ"), лучше обрабатывать входящие данные при добавлении поста?
Например:
Есть модель ModelPosts, в которой мы получаем все из базы данных.
Есть объект Post, в котором обычно помещаются данные о посте, после их получения из БД (но у себя в голове никак не могу его определить куда-то при добавлении поста, получается этот объект никак не участвует в добавлении)
Я правильно понимаю, что лучше всего создать отдельных класс, скажем "PostsAdd", куда будем отправлять массив $_GET например так: $add_post = new PostsAdd($_GET);
$add_post->validate(); // проверяем все входящие данные (и выкидываем исключение, если, скажем нет какого-то поля или оно заполнено неверно).
$ModelPosts = new ModelPosts;
$ModelPosts->save($add_post); // передаем в модель, экземпляр класса, а модель вытаскивает все, что нужно из него и сохраняет.

21 Авг 2019 в 07:00
221 +1
1
Ответы
1

Вообще, хорошая практика - это разделение ответственностей. То есть каждый класс должен отвечать за определенную часть логики.

В вашем случае, вы правильно предположили, что лучше создать отдельный класс для добавления постов. Этот класс может содержать логику валидации данных, создание объекта Post и передачу его в модель для сохранения.

Примерно так это может выглядеть:

class PostsAdd {
private $data;
public function __construct($data) {
$this->data = $data;
}
public function validate() {
// здесь проверяем входящие данные, например, наличие всех необходимых полей и их правильность
// если данные не прошли валидацию, выкидываем исключение
}
public function createPost() {
// здесь создаем объект Post, используя данные из $this->data
$post = new Post($this->data);
return $post;
}
}
$add_post = new PostsAdd($_GET);
$add_post->validate();
$post = $add_post->createPost();
$ModelPosts = new ModelPosts;
$ModelPosts->save($post);

Таким образом, в классе PostsAdd содержится вся логика добавления постов, включая валидацию данных и создание объекта Post. Это позволит вам лучше структурировать код и легче поддерживать его в будущем.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир