| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > ООП и либы для баз данных |
| Автор: mark2011 11.9.2011, 09:16 | ||||||||
| Здравствуйте! Пишу библиотеки доступа для баз данных, используя пространства имён и все возможности ООП. Имеем следующую структуру классов: Database (абстрактный класс с общими методами для всех наследуемых классов) MySQL (потомок Database) MySQL_StoredProcs (потомок MySQL) Вот код конструктора класса MySQL:
Как видим, здесь используются 4 переменные, и без них, видимо, никак. Тут всё хорошо. Теперь в классе MySQL_StoredProcs пытаюсь сделать
который в таком виде, естественно, не проходит. Говорит что не указаны те самые 4 переменные. Хорошо.... идём обратно в класс Database и видим:
В точности их указываем в методе parent::__construct() класса MySQL_StoredProcs и получаем
Как бы тоже логично, потому что вне классов у меня эти переменные нигде не указаны. Действительно, откуда же он их возьмёт? Но как быть? Конструктор Database - без параметров. Конструктор MySQL - 4 параметра, но в этом конструкторе я вызываю parent::__construct() и всё нормально. Конструктор MySQL_StoredProcs без параметров, НО у родителя 4 параметра, а где их определить - непонятно. Или MySQL_StoredProcs делать тоже с 4 параметрами? Но для чего тогда наследование вообще? Что-то непонятно в этой части... |
| Автор: s0lman 16.9.2011, 12:39 |
| Чтоб передать параметры, их надо где-то взять, например, считать из конфига или захардкодить Что-то подобное есть? |
| Автор: vfz4z 22.12.2011, 14:29 | ||
Ага. Рекомендую использовать пер-ю в конфиге, типа
и в родительском классе инициализировать подключение.... Добавлено через 1 минуту и 1 секунду код из yii. А вообще я не сторонник изобретения велосипедов. Готовых orm оч. много... На край просто можно посмотреть как сделано |
| Автор: krundetz 22.12.2011, 16:09 | ||
может для MySQL_StoredProcs сделать такой конструктор?
|
| Автор: Fortop 26.2.2012, 20:46 | ||
| Мне кажется тут ошибка проектирования Что за класс MySQL_StoredProcs? И почему он потомок от MySQL Логичнее было бы иметь что-то вида
|
| Автор: krundetz 27.2.2012, 12:13 |
| Fortop, 2 месяца теме. |