![]() |
Модераторы: 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
Конечно !!! |
|||
|
||||
Guest |
|
|||
Unregistered |
Я бы сделал в каждом модуле такую возможность с целью использовать её не только на главной странице, но и в других разделах по мере необходимости. Если взять общую структуру за основу грамотности движка, то каждый модуль должен полностью отвечать за работу с конкретными весчами (например теми же новостями) если тебе он не нужен, то тебе не предется переделывать потом 2 модуля... и далее с таким подходом будет проще работать со сложной структурой, чем ты будеш делать copy/paste ;)
|
|||
|
||||
Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: нет Всего: 10 |
чъёрть... залогинеться забыл.
![]() -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Master я правильно тебя понимаю, что с твоей точки зрения, лучше для каждого модуля сделать маленький файлик для модуля главной страницы? или как-бы модуль Экспорта по другому.
|
|||
|
||||
Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: нет Всего: 10 |
Mal Hack я могу объяснить более подробно... вот представь, что твой движок пишеш не только ты, и это даже не движок сайта, это крупный програмный продукт... каждому программисту отведена определенная её область в который он должен решить определенные задачи и полностью подготовить свою часть для грамотной работы с ней, что касается как функциональности, так и передечи данных в другие системы... т.е. раз каждый выполняет свою часть (как принято) и подготавливает все для стыковки, то отсюда можно сделать соответствующий вывод... каждый класс (или их группа) должны отвечать за работу с конкретными элементами проекта... на примере движка сайта не будет смотреться болезнено если ты раскидаеш все салатом, но ты просил мое мнение и я как мог прокомментировал его.
-------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Master это-то я все понимаю. Вот мне надо их объединить в один. Точнее их маленькие части. К сожалению, специфика веба не позволяет (не предпочтительно), чтобы помимо модуля был еще маленький модуль экспорта...
|
|||
|
||||
Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: нет Всего: 10 |
почему? експорт может входить в модуль как функция по экспорту данных для тех или иных целей например... вполне приемлемое решение.
-------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Да. Так-то оно так. Но мне НЕ хотелось бы подключать в скрипт 6 модулей из которых надо сделать экспорт.
|
|||
|
||||
Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 3 Всего: 55 |
Mal Hack
Module::export? |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
не совсем тебя понял. |
|||
|
||||
Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 3 Всего: 55 |
Mal Hack
Т.е подгружаешь все нужные модули. Но не вызываешь их, только вызываешь фукнцию экспорта. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Вот в этом то и проблема. т.е. как это лучше организовать. Ведь подгружать 5-6 файлов (больших) - тормозит скрипт. |
|||
|
||||
Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 3 Всего: 55 |
Mal Hack
тогда функции в отдельный файл. другого выхода не вижу. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Вот тут опять. Лио все экспортные функции в один файл или в несколько для каждого модуля ![]() |
|||
|
||||
Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 3 Всего: 55 |
Mal Hack
ну из космоса то ты эти данные не возмешь ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Opr не совсем тебя понял.
|
|||
|
||||
Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 3 Всего: 55 |
Mal Hack
тебе допустим нужен экпорт новостей... делаешь RSS ленту новостей... где тебе нужно вывести новости парсишь её и выводишь ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Волпрос не в том как сделать, а как хранить... И оптимально подключить. |
|||
|
||||
Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 3 Всего: 55 |
Mal Hack
думаю оптимально XML.
смотря как хранить ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Opr сам экспорт идт внутри срипта. Это 100%. Почитай в самом начале. Может ты просто не так понял, что мне надо. У меня вопрос лишь в том, как хранить наиболее оптимально для последующей работы.
|
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Думаю, что в твоем случае, модуль не должен состоять из одного файла. Я бы вообще, каждый модуль посадил бы в разные каталоги, и помимо основого файла модуля класса. Создал бы еще отдельный файл с классом module_preload, в нем бы я создал необходимые методы, и именно этот файл с классом я бы подключал. Он будет легкий. Пусть даже это будет 6-10 файлов... |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Судя по всему так и придется делать. Маленькие классы с функциями и также сс SQL... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |