| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > Сомнения при проектировании движка |
| Автор: Muchenik 12.1.2007, 23:24 | ||
| У меня возникли сомнения в правильности проектирования. Хотелось бы узнать точку зрения народа. Ситуация такая. Есть главный класс движка ( к примеру Admin ), который в зависимости от выбраой опции подключает модуль. Имя опции одинаковое с именем файла, в котором хранится модуль.
Проблемная строка вкладывает определение класса прямо в тело рабочей функции. Нормальное ли это явление или нет? Других вариантов я не вижу. Надеюсь внятно высловился. |
| Автор: Mal Hack 12.1.2007, 23:29 | ||
| Думаю, что это не шибко хорошо. Я вот делал так (вырезка из кода главного файла):
|
| Автор: Glip 12.1.2007, 23:57 |
| мне кажется или дублирование кода? |
| Автор: Muchenik 12.1.2007, 23:59 | ||||||||
| Да хотелось как можно строже придержаться ООП. Главный файл у меня такого плана:
Я наверное сделаю так
А потом в главном файле
Добавлено @ 00:02
Поконкретней плиз. Что, где, почему? |
| Автор: Glip 13.1.2007, 00:04 |
| а __autoload не подойдет? http://ru.php.net/manual/en/language.oop5.autoload.php Добавлено @ 00:05 Muchenik, дублирование, это я про пример Mal Hack |
| Автор: Mal Hack 13.1.2007, 01:30 |
Никакого дублирования там нет. Одно дело - главные файлы, другое дело модульные. А что у меня это нет? |
| Автор: Muchenik 16.1.2007, 17:30 | ||||
Дело в том, что помимо самого модуля (класса) мне нужно подгружать настройки для этого модуля из отдельного файла и использовать их как глобальные переменные. Т.е. примерно так:
Но __autoload загружает все в свою область видимости и я недоберусь к конфигу модуля. Как это можно обойти??? |
| Автор: Mal Hack 16.1.2007, 17:38 |
| Muchenik, делай как я показал выше и будет тебе счастье. |
| Автор: Nchanged 23.1.2007, 11:47 | ||
| Господа, вы только засоряете код этими классами, которые занимаются совершенно ненужными действиями. У меня модули подключаются в завимимости от $_GET["mod"]; Т.е следущим образом:
Это сделано на системный файлы, типа запрос на картинку и пр. А так - все данные хрянятся в Mysql. По всем модулям. |
| Автор: AztEK 23.1.2007, 14:51 |
| Это ущербный подход. Нормально масштабируемый проект так не сделать. |
| Автор: Vaulter 23.1.2007, 15:29 |
| главный класс это вообще звучит как нонсенс PHP ООП ЗАЧЕМ? как уже спросили выше. __autoload + несколько вспомогательных классов + умело сделанная структура модулей+шаблонов+настроек позволят Вам построить достаточно сложную систему весьма быстро используя (по желанию) как чистый ООП так и ОПП (обьектно процедурный подход) |