PHP ООП Дизайн: БД активно подключена - PullRequest
1 голос
/ 07 июля 2011

В ООП-дизайне уровня абстракции базы данных правильно ли создавать объект-оболочку для исходного объекта БД, который его использует?Чтобы предоставить всего пользователя, пройдите в себя и создайте активное соединение, чтобы другие объекты, такие как CRUD, могли его наследовать и уже иметь открытое соединение?

<- EDIT ->

некоторые предыстории: то, что я пытаюсь построить здесь, это хорошее разделение между db-логикой и бизнес-логикой, поэтому я подумал о создании табличного объекта CRUD, который наследуется другими объектами бизнес-логики, но проблема возникает, когда я думаю окак бы связь с БД передавалась между этими объектами.он не чувствовал себя так хорошо, просто передавая его как параметры, такие как

class TableCrud(AbstractDb $db) {...}
class BusinessObject(TableCrud $tc) { ... }

и еще один подход, который не очень подходит для объекта, содержащего учетные данные пользователя БД, внутри него, который открывает соединение и позволяет TableCrud наследоватьэто.

Я уверен, что мне здесь не хватает некоторой промежуточной механики объектов.

Ответы [ 2 ]

0 голосов
/ 07 июля 2011

Когда я пишу модели базы данных, обычно это выглядит так:

Model.php:

include('connect.php');

class Model{}...

connect.php:

include('Database.php');
include('dblogin.db');

$db = new Database( $user, ...);

database.php:

class Database{}

dblogin.db:

$user = user;
...etc...

tl;dr: Да, именно так вы можете добавить слой абстракции поверх вашего DAL.

0 голосов
/ 07 июля 2011

Вау, помедленнее.Немного пунктуации очень помогло бы.

Я не вижу проблем с наложением дополнительного слоя абстракции поверх чего-то, что не может быть легко понято.Просто убедитесь, что это необходимо, и это облегчит понимание, а не наоборот.Иногда, если вам нужно спросить, это уже означает, что у вас есть проблема с контролем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...