Я довольно часто вижу в PHP, в частности, в плагинах WordPress, что люди пишут SQL прямо в своих плагинах ... Как я узнал, все должно быть обработано слоями ... Так что, если в один прекрасный день требования данного изменение слоя, мне нужно только беспокоиться об изменении слоя, с которым все взаимодействует.
Сейчас я пишу слой для взаимодействия с базой данных, чтобы, если что-то изменится в моем взаимодействии с базами данных, все, что мне нужно сделать, - это изменить один слой, а не количество созданных плагинов.
Мне кажется, что это то, с чем другие люди могли сталкиваться в прошлом, и что мой подход может быть неэффективным.
Я пишу такие классы, как
Table
Column
Row
Это позволяет мне создавать таблицы, столбцы и строки базы данных, используя заданные объекты с конкретными методами для обработки всех их функций:
$column = new \Namespace\Data\Column ( /* name, type, null/non-null, etc... */ );
$myTable = new \Namespace\Data\Table( /* name, column objects, and indexes */ );
\Namespace\TableModel.create($myTable);
Мои вопросы ...
Кто-то еще уже что-то написал, чтобы обеспечить некоторое разделение между разными слоями?
Если нет, поможет ли мой подход вообще в долгосрочной перспективе или я теряю время; я должен сломать и жестко закодировать SQL как все остальные?
Если это поможет мне написать это самостоятельно, есть ли какой-нибудь подход, который я мог бы предпринять, чтобы справиться с этим более эффективно?