По сравнению с прошлым авриантом - небо и земля.
В целом этот код лучше, чем 99.9% того что пишут на тостере. No kidding.
Улучшить можно только по мелочи.
as Place в неймспесах лишнее. as нужно если ты другое имя даешь
Рекомендую перейти с bindParam на передачу массива в execute.
Так получится убрать дублирование кода в getPlaces(). Добавляя условие в запрос тут же добавляешь жлемент в массив. потом тупо скармливаешь этот массив execute(). Пример можно посмотреть
здесь
если имена полей совпадают с имнами свойств класса, то вместо
while ($row = $stmt->fetch()) {
$place = new Place();
$place->setPlaceID($row["placeID"]);
$place->setTypeID($row["typeID"]);
$place->setName($row["name"]);
$place->setTansliterated($row["tansliterated"]);
$place->setCountryID($row["countryID"]);
$place->setDescription($row["description"]);
$places[] = $place;
}
можно написать
$places = $stmt->fetchAll(PDO::FETCH_CLASS, 'Place');
Но вообще это не очень гибко и лучше уже начинать мигрировать в сторону ORM
кстати, по ридми
в
https://phptherightway.com/ написано Use the Current Stable Version (
7.4)
PSR-4 это не стандарт написания кода
плюс обработку ошибок следует сделать конфигурируемой, в зависимости от окружения.
при разработке удобнее видеть ошибки на экране
плюс вообще конфиг надо сделать зависящий от окружения.
дома у тебя пароль от базы один, а на боевом сервере другой.
конфиг должен подкключаться в зависимости от окружения