![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Итак... Может буду объяснять несколько замудренно, но как-то по лдругому не ложится.
Есть главный файл, который в зависимости от параметра ?mode= (т.е. обращаю внимание, когда параметр задан, известен модуль) подключает модуль modul1 или modul2 или modul3 и т.д. Модули по своим задачам различны, они лишь вписываются в общую структуру работы движка. Теперь предположим, что параметр ?mode= не задан. Т.е. как бы пользователь запрашивает главную страницу сайта. На Главной странице я хочу показывать части этих модулей, т.е. к примеру, 10 последгних новостей, 10 статей, пару картинок из фотогаллереи. Собственно вопрос в чем. Как лучше организовать объединение маленьких частей различных модулей. Я пока думал как. Сделать отдельный модуль для главной странице, где будут небольшие функции показа нужноый инфы. но тут фишка получается дублирование SQL запросов, хранящзихся в отдельном файле для каждого модуля (теперь часть из них будет в SQL файле для главного модуля) и при добавлении модуля надо будет ручками к главному его дописывать... Есть ли какое-то более рациональное решение? Подключать сразу 5-6 файлов модулей не хочется... |
|||
|
||||
netklon |
|
|||
Unregistered |
Сделайте у каждого модуля интерфейс доступа к нужной инфе и взаимодействуйте через него.
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
А файлы? |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Mal Hack, думаю что вариант с выносом превью функций вполне оправдан. Только я не понимаю почему у тебя зпросы дублируются?
Например если модуль новостной, там будет предпросмотр новостей, постраничная разбивка и т.п., на главной же, только предпросмотр, допустим пяти последних новостей. Если хочется все же как то объеденить эти данные - пиши интерфейс SQL запросов который будет содержать SQL для всех модулей, но, ИМХО это делать - ресурсы только тратить, так как часть данных использоваться все равно не будет. Можно еще поступить так - создать несколько интерфейсов для разных модулей. Можно брать из них данные, а можно создать отдельный интерфейс для главной страницы. В общем думай, решай. Я бы поступил последним способом. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Получается так.
Есть: modul_code.php и modul_sql.php. делать SQL гна все модули - отпадает, нагрузка не слабая.. Судя по всему надо будет делать mainpage_code.php & mainpage_sql.php и туда собирать функции экспота данных от разных модулей. тогда просто в mainpage_sql.php к примеру будет содержать запрос на список последних новостей, который есть в modul_sql.php. Вот где дублирование получается. |
|||
|
||||
lorien |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 16.11.2004 Где: omsk Репутация: нет Всего: 3 |
Чё-то я не понял. Есть модули, в них есть функции.... инклюдишь все модули, вызываешь только нужные из них функции... в чём проблема то?
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Ага, а про память, скорость выполнения? ![]() |
|||
|
||||
lorien |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 16.11.2004 Где: omsk Репутация: нет Всего: 3 |
И как, насколько падает скорость выполнения если всё инклюдить? ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Как минимум раза в два минимум... Проверял. |
|||
|
||||
Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 4 Всего: 53 |
думаю порядочно Mal Hack согласен с нетклоном |
|||
|
||||
Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 4 Всего: 53 |
2lorien
из журнала PHP Inside |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Irokez, и правильно пишут. Так как РНР в данном случае все равно загрузят и исполнят все модули - читайте задачу стоящую перед автором темы.
А производительность упадет скорее в десятки раз - хотя тут уже все завист и от предназначения модулей и их количества. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 4 Всего: 53 |
ну а я о чем? |
|||
|
||||
lorien |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 16.11.2004 Где: omsk Репутация: нет Всего: 3 |
[quote]Как минимум раза в два минимум... Проверял.[/code]
Два раза - это так критично для твоей системы? Какова будет нагрузка на скрипт? Есть ли смысл оптимизировать его? |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
lorien
Конечно !!! |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |