![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Muchenik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 27.10.2005 Репутация: нет Всего: 5 |
У меня возникли сомнения в правильности проектирования. Хотелось бы узнать точку зрения народа.
Ситуация такая. Есть главный класс движка ( к примеру Admin ), который в зависимости от выбраой опции подключает модуль. Имя опции одинаковое с именем файла, в котором хранится модуль.
Проблемная строка вкладывает определение класса прямо в тело рабочей функции. Нормальное ли это явление или нет? Других вариантов я не вижу. Надеюсь внятно высловился. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Думаю, что это не шибко хорошо.
Я вот делал так (вырезка из кода главного файла):
|
|||
|
||||
Glip |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: нет Всего: 18 |
мне кажется или дублирование кода?
|
|||
|
||||
Muchenik |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 27.10.2005 Репутация: нет Всего: 5 |
Да хотелось как можно строже придержаться ООП.
Главный файл у меня такого плана:
Я наверное сделаю так
А потом в главном файле
Добавлено @ 00:02
Поконкретней плиз. Что, где, почему? |
||||||||
|
|||||||||
Glip |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: нет Всего: 18 |
а __autoload не подойдет?
http://ru.php.net/manual/en/language.oop5.autoload.php Добавлено @ 00:05 Muchenik, дублирование, это я про пример Mal Hack |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
||||
|
||||
Muchenik |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 27.10.2005 Репутация: нет Всего: 5 |
Дело в том, что помимо самого модуля (класса) мне нужно подгружать настройки для этого модуля из отдельного файла и использовать их как глобальные переменные. Т.е. примерно так:
Но __autoload загружает все в свою область видимости и я недоберусь к конфигу модуля. Как это можно обойти??? |
||||
|
|||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Muchenik, делай как я показал выше и будет тебе счастье.
|
|||
|
||||
Nchanged |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 9.2.2006 Репутация: нет Всего: нет |
Господа, вы только засоряете код этими классами, которые занимаются совершенно ненужными действиями.
У меня модули подключаются в завимимости от $_GET["mod"]; Т.е следущим образом:
Это сделано на системный файлы, типа запрос на картинку и пр. А так - все данные хрянятся в Mysql. По всем модулям. Это сообщение отредактировал(а) Nchanged - 23.1.2007, 11:49 |
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: нет Всего: 18 |
Это ущербный подход. Нормально масштабируемый проект так не сделать.
-------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
главный класс это вообще звучит как нонсенс PHP ООП
![]() ЗАЧЕМ? как уже спросили выше. __autoload + несколько вспомогательных классов + умело сделанная структура модулей+шаблонов+настроек позволят Вам построить достаточно сложную систему весьма быстро используя (по желанию) как чистый ООП так и ОПП (обьектно процедурный подход) |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |