Помощник
|
Класс MySQL в класс DB2, Переделать |
gaaarfild
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
8.12.2010, 21:31;
Ответить: ZiTosS
Сообщение
#2
|
|
gaaarfild, почитай про абстракцию, она появилась в PHP5.
Абстракция — это придание объекту характеристик, которые отличают его от всех других объектов, четко определяя его концептуальные границы. Основная идея состоит в том, чтобы отделить способ использования составных объектов данных от деталей их реализации в виде более простых объектов, подобно тому, как функциональная абстракция разделяет способ использования функции и деталей её реализации в терминах более примитивных функций, таким образом, данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня. Такой подход является основой объектно-ориентированного программирования. Это позволяет работать с объектами, не вдаваясь в особенности их реализации. В каждом конкретном случае применяется тот или иной подход: инкапсуляция, полиморфизм или наследование. Например, при необходимости обратиться к скрытым данным объекта, следует воспользоваться инкапсуляцией, создав, так называемую, функцию доступа или свойство. Взято с Wikipedia А если в двух словах и без абстракции: 1) Имеем внешний статический класс-обертку, в который мы передаём данные для подключения и выбираем драйвер (тип СУБД) 2) Данный класс определяет тип СУБД, с которой мы собираемся работать, из параметра. Дальше подключает нужный класс для работы с СУБД, ну например mysql.class.php, db2.class.php и т.д. 3) Статический класс создаёт на основе класса, содержащегося в подключенном файле, объект для работы уже с определенной СУБД. Этот объект уже проводит инициализацию (подключение к серверу БД, настройка кодировок, возможно выбор Базы данных). 4) Затем этот статический класс возвращает нам данный объект, с которым мы уже и работаем. Но нужно учесть при такой иерархии, что нужно называть все методы для работы с БД одинаково для разных драйверов, иначе если мы вдруг захотим использовать MySQL вместо DB2, а в них определены разные методы - скрипт перестанет работать. |
|
|
gaaarfild
|
Сообщение
#3
|
|
Так это и понятно. И про абстракцию я знаю И ООП знаю очень хорошо. Я к тому, что позволяют ли встроенные функции PHP при такой структуре методов, создать другой класс для подключения к другой СУБД, не меняя саму систему. А только заменяя класс-драйвер.
|
|
|
ZiTosS |
9.12.2010, 10:41;
Ответить: ZiTosS
Сообщение
#4
|
|
gaaarfild, конечно можно, приведу пример той реализации, которую я предлагал.
Прикрепленные файлы
|
|
|
gaaarfild
|
Сообщение
#5
|
|
Ок. спасибо. попробую реализовать.
|
|
|
ZiTosS |
9.12.2010, 23:25;
Ответить: ZiTosS
Сообщение
#6
|
|
gaaarfild, если что, есть множество библиотек и классов, которые уже реализуют данный интерфейс.
|
|
|
gaaarfild
|
Сообщение
#7
|
|
Да вот как раз занимаюсь их поиском. Как найду что нибудь интересное, обязательно выложу сюда.
|
|
|
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
|
Сообщение
#9
|
|
|
Да в PDO делать надо))
В любом случае DB2 - это PDO в PHP. Я думаю, все равно переписать надо будет вручную.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Услуги по созданию и доработке скриптов 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 |
Текстовая версия | Сейчас: 19.3.2024, 14:54 |