1. Не должно быть разделения на фронтенд и бекенд в php. В чем разница? Исключительно в том, что контроллер для бека имеет код, который на основании кук или сессий должен проверять право на исполнение заданнго экшена.
2.
public function __construct()
{
parent::__construct();
}
сотри и не позорься )
3.
public function postUpdate($postTitle, $postDescription, $postContent, $postImage, $postId)
{
$this->updateResult;
if(!empty($_FILES['postImage']['tmp_name'])){
copy($_FILES['postImage']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/web/images/'.$_FILES['postImage']['name']);
}
$sth = $this->dbh->prepare('UPDATE posts SET title = ?, description = ?, content = ?, thumbnail = ? WHERE id = ?');
if($sth->execute([$postTitle, $postDescription, $postContent, $postImage, $postId])){
$this->updateResult = true;
}else{
$this->updateResult = false;
}
return $this->updateResult;
}
ты не понимаешь, что такое модель. модель - это описание одной сущности.
модель - это файл, запись, пользователь
твой чудо-метод и жнец и на трубе игрец
так не должно быть
Принцип единственной ответственности - знаешь что это?
должно быть так примерно (создание и обновление):
$post = new Post();
$post->setData($_POPST['post']);
$post->save();
или
if (!empty($_POST['id'])) {
$post = Post::findById($_POST['id']);
if (empty($post)) {
throw new Exception('model not found');
}
$post
->setData($_POST['post'])
->save();
}
файлы должен записывать и сохранять иной слой.. короче практикуйся.
Читай это
https://ranneft.ru/export/books/fauler1.pdf
удачи