наследуемые CarTechnic и SOMETHING_Technic, в них указана дополнительная реализация. В главном (родительском или же мастер) классе расположена основная реализация, в нем же и getInstance, куда передаем идентификатор записи из базы и объект PDO. Далее мы делаем стейтемент и формируем запрос, где указываем prepare с ID=?, передаем в execute массив данных (в моем случае - $id), а затем, если информация не найдена, то возвращаем нулл или же Exception. Иначе - идет условие исходя из полученной выборке, где мы сравниваем $row["type"] который === "Car" или что-то другое (другой вид техники), исходя из условия - записываем объект в переменную, и возвращаем его
нихера непонятно имхо вы что-то делаете неправильно категорически
представь теперь иначе без иерархии наследования у тебя есть объект соединения с базой данных которые требуется в каждом из твоих классов которые работают с бд а они уже делают свою логику и выборки по разному
Ну, да, так значительно проще. На данный момент я лишь тренируюсь, изобретая велосипеды, подобно этому: https://pastebin.com/tg14q5Aa Это крайне бредовая реализация, но смотрю, как это работает
так лучше не делать вместо того что бы определить где и какие объекты собирать на основании каких-то непонятных айлишников в методе сделай так что бы твои модельки могли сами себя выбирать из базы а-ля AR-like
Понял - принял, благодарю)
типо Car::find(1) Engine::findBy(['parameter' => 'value')
О, точно, как раз и думал об этом)
если класс не абстрактный, то можно хранить объект в свойстве, тогда будет $main->variant нужного типа
У меня почти так и сделано, свойство находится в мастерклассе. Короче, сам себе голову заморочил, Сорян)
Обсуждают сегодня