Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2016, 20:26   #11
vinniepooh
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 440
По умолчанию

Просто немного смущает, что мы создаём "объект работы с БД" в этом случае. Обычно создают объект: базу, подключение и т.п. То есть, то что в реальности есть. А тут... Хотя в принципе нормально.
vinniepooh вне форума Ответить с цитированием
Старый 21.02.2016, 20:28   #12
vinniepooh
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 440
По умолчанию

Код:
 $aMyData = $DB->getAll('SELECT * `my_table` ......'); // вернет данные из базы в виде массива или объекта
Вот я про это, например. Может вернуть данные в виде объекта. А зачем нам объект, ведь можно обойтись массивом (ассоциативным). Усложнение вроде как?
vinniepooh вне форума Ответить с цитированием
Старый 21.02.2016, 21:19   #13
vinniepooh
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 440
Счастье

Код:
class Tea
{
private  $name;
private  $brand;

//array
// $$arr['name']='Чёрный';
// $$arr['brand']='Нури';

};
Вот такое можно сделать. Класс чай (коробка с чаем - бренд и тип чая).
Или аналогично.
vinniepooh вне форума Ответить с цитированием
Старый 22.02.2016, 09:57   #14
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Зачем нужен класс для работы с БД:
1. Коннект к базе очень ресурсозатратная операция. В классе с помощью синглтон возврашаем один и тот же коннект, а не каждый раз подключаемся.
2. Пишите методы которые возвращают вам данные в удобном виде.
3. Если нужно поменять драйвер доступа к базе например mysqli на PDO, то переписываете 1 класс, а не в 100500 местах меняете код.
4. Т.к. все запросы проходят через одну точку входа, просто прикрутить логирование, узнать время выполнения запроса и тп.
5. Меньше кода в моделях, код более читаем.
Наверняка есть еще преимущества. Сразу все не вспомню.

Последний раз редактировалось Gorychev; 22.02.2016 в 11:56.
Gorychev вне форума Ответить с цитированием
Старый 22.02.2016, 10:20   #15
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так все 5 пунктов и без ООП реализовать можно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.02.2016, 10:43   #16
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Цитата:
Так все 5 пунктов и без ООП реализовать можно
Мона. Но не будет столь изящно ООП же существует для удобства организации данных.
Gorychev вне форума Ответить с цитированием
Старый 22.02.2016, 12:02   #17
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Если вам не нужно. То и не используйте.

Функции хороши когда у вас задача простая. А если задача сложная, то стоит использовать ООП.

Что значит сложная задача? Да пожалуй такая которую не под силу охватить одному разуму.
Когда у вас в задаче переплетаются, данные, функции, машина состояний, иеархия.

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

Но как только у вас появляются разнообразные списки и вы хотите иметь один унифицированный интерфейс, для выполнения нужных действий. Поиск в списке. Сериализация дерева из разных объектов.

Вот тогда ООП и начинает работать и приносить плоды. За вас уже написали код выделили общие функции и методы присущи определённым классам.

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

В этом и заключается, то что разум уже не способен в одиночку охватить всю задачу. А кто может тот сам начинает делать ООП объекты и иерархию. Это архитекторы и ведущие программисты.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 22.02.2016, 16:27   #18
vinniepooh
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 440
По умолчанию

Спасибо. Да, пожалуй, когда используешь готовые объекты, то всё понятно, особенно когда документация под рукой - и всё работает.
А вот когда создавать надо свой класс или объекты - тут уже вопросы. Можно создать письмо, заметку, файл и т.п., но объект "работа с базой данных" не совсем соответствует какой-то реальной вещи/предмету.
Если только иметь в виду сам процесс. Тут часто и появляются искусственности/загвоздки.
vinniepooh вне форума Ответить с цитированием
Старый 22.02.2016, 16:40   #19
vinniepooh
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 440
По умолчанию

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

Последний раз редактировалось vinniepooh; 22.02.2016 в 19:59.
vinniepooh вне форума Ответить с цитированием
Старый 22.02.2016, 17:02   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну дык возьмите IDE если нужна.

Цитата:
объект "работа с базой данных" не совсем соответствует какой-то реальной вещи/предмету.
Не обязано ничего соответствовать вещи, примеры с реальными вещами просто для упрощения объяснений.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 22.02.2016 в 17:04.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Когда стоит использовать постоянные соединения с Mysql? Illusiony PHP 5 13.10.2015 18:45
ООП - когда стоит использовать классы ? A9050 Общие вопросы C/C++ 10 25.02.2013 17:04
Когда нужно использовать ООП? leklerk Общие вопросы по программированию, компьютерный форум 49 01.06.2012 09:09
Не будет ли ошибкой использовать инвок для случаев, когда он не требуется? gramp C# (си шарп) 4 18.04.2012 20:41
сортировка, когда невозможно использовать свойства таблицы IndexFieldName Римма БД в Delphi 5 07.09.2007 10:56