![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| gvozd |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 25.7.2006 Репутация: нет Всего: нет |
Здравствуйте.
Помогите, пожалуйста, составить грамотно архитектуру CMS. А именно подключение модулей. Я задумал так: - modules --page (название модуля) ---admin.page.php (для админки) ---page.php (сам модуль) Модули представлены в виде классов. Нужно динамически загрузить все модули и получить от них результат работы (HTML). Проблема заключается в динамическом создании экземпляра класса. Подскажите, как это грамотно сделать? |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 6 Всего: 22 |
[code=php]
/** Функция вызова ЛЮБОГО метода практически любого класса системы * * Используется index.php, другими молями для вызова методов других модулей * * @param string $modname имя модуля для вызова (имя класса) * @param string $func - имя метода этого класса для вызова * @param mixed $params - массив или список (много) аргументов этого метода * @return mixed значение возвращаемое вызываемым методом */ function call($modname,$func,& $params = null, $innercall = false) {//realize! //check for modules? TODO if(empty($GLOBALS[$modname]) || !is_object($GLOBALS[$modname])) $mod = new $modname();//quick init else $mod = & $GLOBALS[$modname]; if($func) return $mod->$func($params); else return $mod->index($params); } /** Функция автозапуска классов. может представлять собой какойнибудь factory * в дальнейшем * * @see php.net/__autolo Это сообщение отредактировал(а) Vaulter - 25.8.2007, 12:14 |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
gvozd, поиск. Уже обсуждений полфорума по данной теме!
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| gvozd |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 25.7.2006 Репутация: нет Всего: нет |
Обсуждений полфорума, а конкретного ничего нет.
|
|||
|
||||
| Master_ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
Я делаю так:
./sources/modules/название_модуля.php Для админки например ./sources/action_admin/модуль.php |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Да что ты говоришь!!! А пол интернета завалено всякими CMS-ками... что, неохота ковыряться и разбираться в реализации, а??? Разбери одну, затем вторую, затем третью, смотри в каждой реализацию и ищи все минусы и плюсы в каждой, а затем собери все плюсы в одно и пожалуста, собирай свою cms-ку. Вот тебе конкретика! -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| gvozd |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 25.7.2006 Репутация: нет Всего: нет |
Вот какой класс у меня получился:
Структура файлов: -modules --module1 ---admin.module1.php ---class.module1.php --module2 ---admin.module2.php ---class.module2.php Что скажете? |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |