Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ООП и реализация работы с бд
 
 автор: reimaxby   (01.08.2015 в 18:11)   письмо автору
 
 

Здравствуйте,

Начал писать новый проект и решил отказаться от функционального подхода в пользу ООП. Столкнулся с такой задачей, есть класс для работы с бд:


class WORK_DB {
// реализация работы с бд
}


и есть некий класс для работы с какой то информацией, допустим раздел статей:


class WORK_DOC {
// реализация работы с разделом статей
}


во втором классе мне нужно сохранять / выводиться статьи, а они лежат в бд. Соответственно текущая реализация у меня через global

class WORK_DOC {
function show_doc() {
global $WORK_DB;
// вывод списка статей
}
}


я понимаю, что использование global не есть хорошо при выбранном подходе. скажите, как правильно реализовать работу с бд по выше описанной ситуации.

  Ответить  
 
 автор: indexer   (02.08.2015 в 18:06)   письмо автору
 
   для: reimaxby   (01.08.2015 в 18:11)
 

у Д. Котерова есть http://dklab.ru/lib/DbSimple/ или PDO

  Ответить  
 
 автор: reimaxby   (05.08.2015 в 16:06)   письмо автору
 
   для: indexer   (02.08.2015 в 18:06)
 

Посмотрел исходники, у меня интерфейс библиотеки фактически аналогичный. меня интересует правильная реализация с целью не писать абы работало, пример fl.ru более чем показательный (исходники в сети есть, там очень много интересного).

сейчас я пришел к такому решению:


class WORK_DB {
// реализация работы с бд

$WORK_DB = new WORK_DB();

class WORK_DOC {
// реализация работы с разделом статей
function list() {
WORK_DB::Query('select * ');
}

$WORK_DOC = new WORK_DOC();


я пытаюсь грамотно организовать систему, чтобы с ней потом было удобно работать не только мне, но и любому другому программисту.

  Ответить  
 
 автор: Саня   (02.08.2015 в 23:52)   письмо автору
 
   для: reimaxby   (01.08.2015 в 18:11)
 

"Правильный" и "хороший" - настолько эфемерные характеристики, применительно к способу организации кода, что оперировать ими здесь бессмысленно. От слишком многих переменных зависит результирующее значение хорошести и правильности. Более того, существует тенденция к изменению этого значения, по мере увеличения вашего опыта в программировании.

Пишите так, чтобы код работал. Работающий код - хороший код. Со временем станет понятно, удачно ли вписывается этот код в окружение. Если не вписывается - всегда можно переделать. Таким образом постепенно выстроится наиболее подходящая архитектура для данного конкретного проекта в конкретных условиях и вашим текущим уровнем профессионализма.

Пишите больше кода, смотрите на код других, читайте умные книжки - это всё позволит видеть проект ещё на несколько шагов вперёд и принимать более эффективные решения.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования