X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Класс MySQL в класс DB2, Переделать
gaaarfild
gaaarfild
Topic Starter сообщение 7.12.2010, 10:38; Ответить: gaaarfild
Сообщение #1


У меня все соединения и манипуляции с Базой данных работают через этот класс.Прикрепленный файл  class.Mysql.php ( 5,05 килобайт ) Кол-во скачиваний: 78
Он для СУБД MySQL

А можно ли его переписать для соединения с СУБД DB2, чтобы система, не меняя ничего, кроме самой СУБД, работала, просто поменяв файл класса с MySQL на новый, переписанный?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 8.12.2010, 21:31; Ответить: ZiTosS
Сообщение #2


gaaarfild, почитай про абстракцию, она появилась в PHP5.

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

Такой подход является основой объектно-ориентированного программирования. Это позволяет работать с объектами, не вдаваясь в особенности их реализации. В каждом конкретном случае применяется тот или иной подход: инкапсуляция, полиморфизм или наследование. Например, при необходимости обратиться к скрытым данным объекта, следует воспользоваться инкапсуляцией, создав, так называемую, функцию доступа или свойство.


Взято с Wikipedia


А если в двух словах и без абстракции:

1) Имеем внешний статический класс-обертку, в который мы передаём данные для подключения и выбираем драйвер (тип СУБД)

2) Данный класс определяет тип СУБД, с которой мы собираемся работать, из параметра. Дальше подключает нужный класс для работы с СУБД, ну например mysql.class.php, db2.class.php и т.д.

3) Статический класс создаёт на основе класса, содержащегося в подключенном файле, объект для работы уже с определенной СУБД.

Этот объект уже проводит инициализацию (подключение к серверу БД, настройка кодировок, возможно выбор Базы данных).

4) Затем этот статический класс возвращает нам данный объект, с которым мы уже и работаем.


Но нужно учесть при такой иерархии, что нужно называть все методы для работы с БД одинаково для разных драйверов, иначе если мы вдруг захотим использовать MySQL вместо DB2, а в них определены разные методы - скрипт перестанет работать.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 8.12.2010, 22:50; Ответить: gaaarfild
Сообщение #3


Так это и понятно. И про абстракцию я знаю И ООП знаю очень хорошо. Я к тому, что позволяют ли встроенные функции PHP при такой структуре методов, создать другой класс для подключения к другой СУБД, не меняя саму систему. А только заменяя класс-драйвер.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 9.12.2010, 10:41; Ответить: ZiTosS
Сообщение #4


gaaarfild, конечно можно, приведу пример той реализации, которую я предлагал.
Прикрепленные файлы
Прикрепленный файл  DBDriver.zip ( 1,93 килобайт ) Кол-во скачиваний: 76
 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 9.12.2010, 14:47; Ответить: gaaarfild
Сообщение #5


Ок. спасибо. попробую реализовать.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 9.12.2010, 23:25; Ответить: ZiTosS
Сообщение #6


gaaarfild, если что, есть множество библиотек и классов, которые уже реализуют данный интерфейс.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 10.12.2010, 1:19; Ответить: gaaarfild
Сообщение #7


Да вот как раз занимаюсь их поиском. Как найду что нибудь интересное, обязательно выложу сюда.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 10.12.2010, 18:57; Ответить: ZiTosS
Сообщение #8


gaaarfild, вот есть варианты:
database.class.php, но в нем всё работа с разными СУБД реализована в одном классе.
basic database abstraction class that supports MySQL, Oracle, and MS Access

А если рассматривать серьезные:
1) ADODB
2) Pear:;DB и Pear::MDB
3) PDO
да и ещё множество есть, особенно если заглянуть в различные фреймворки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 11.12.2010, 0:09; Ответить: gaaarfild
Сообщение #9


Да в PDO делать надо))
В любом случае DB2 - это PDO в PHP.
Я думаю, все равно переписать надо будет вручную.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1129 24.11.2023, 14:46
автор: alexey
Открытая тема (нет новых ответов) Web программирование на С/С++/PHP/MySQL/SQL, высоконагруженные проекты
Есть наработки в области бирж трафика, топов, тизеров, видео cj-тубов
4 DFService 3327 8.4.2020, 18:02
автор: DFService
Открытая тема (нет новых ответов) Верстка, php + mysql, недорого
3 devprojectlab 2626 28.10.2019, 18:53
автор: Mukis
Открытая тема (нет новых ответов) Нужен человек, который хорошо понимает php+mysql
Нужен человек, который хорошо понимает php+mysql
0 dsugar 2483 7.9.2018, 10:37
автор: dsugar
Открытая тема (нет новых ответов) Нуждаюсь в услугах вебмастера, знающего html, css, php, mysql
1 Bizota 2952 21.8.2018, 1:33
автор: kalm


 



RSS Текстовая версия Сейчас: 19.3.2024, 14:54
Дизайн