Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация структуры сайта 
:(
    Опции темы
Royan
Дата 5.10.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Этот вопрос больше относится к архитектурной тематике, но поскольку такого форума нет, я все буду писать на PHP, то задаю вопрос здесь. 

Задача: Создать механизм структуры сайта

Возьмем самый простой случай. Положим у вас есть книга, в ней есть главы (1, 2, ... N), подразделы(1.1, 1.2, ... 1.n, 2.1, 2.2, 2.m, ... k.h)  короче иерархия. Нужно из этой книги сделать сайт. Сразу приходит на ум XML, можно было бы даже без программирования на PHP обойтись, но я не хочу использовать XML, потому что не хочу парсить весь XML документ каждый раз когда пользователь щелкает по подразделу в содержании (если моя точка зрения не ясна сразу говорите). Почему пришлось бы парсить весь XML? Потому если я не ошибаюсь PHP не умеет держать в памяти распарсенную модель DOM, если ошибаюсь поправьте меня. 

В общем я хочу придумать такой механизм, который бы с минимальным набором вычислений, по заданному идентификатору выдавал текст главы или подраздела. Думаю сейчас в направлении автогенерации, например, задать структура сайта в XML, и банально сгенерировать из него HTML странички (кто программировал на java вспомните как работает javadoc)

Еще одно условие содержание каждой страницы в моей задаче статично, то есть на них нет каких то супер навороченный Ajax компонент и т.п.


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Sunvas
Дата 5.10.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Почему бы просто не использовать БД? Это и проще и быстрее: всего две таблицы (разделы и главы), всего два запроса (получение разделов и глав).


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Royan
Дата 5.10.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Цитата

Почему бы просто не использовать БД? Это и проще и быстрее: всего две таблицы (разделы и главы), всего два запроса (получение разделов и глав). 

Базу не хочется использовать потому что все содержание статическое. 


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
sTa1kEr
Дата 5.10.2008, 16:35 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 11
Всего: 146



Royan, раз сайт полностью статический, то к чему все эти сложности? Создайте иерархию разделов из директорий и html страничек.
PM MAIL   Вверх
solenko
Дата 5.10.2008, 17:15 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



Royan, ну и как гибридное решение -- струкрутра в xml, при первом запуске и при изменении скрипт генерит html структуру.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Royan
Дата 5.10.2008, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Цитата(solenko @  5.10.2008,  14:15 Найти цитируемый пост)
струкрутра в xml, при первом запуске и при изменении скрипт генерит html структуру

А чем этот подход отличается от того что я написал вначале?
Цитата(sTa1kEr @  5.10.2008,  13:35 Найти цитируемый пост)
Royan, раз сайт полностью статический, то к чему все эти сложности?

Это хороший вопрос, именно сложностей я и пытаюсь избежать. Тело в том, что просто создать HTML файлы никуда не годиться, а что если мне придется делать еще один аналогичный сайт? Или, например, исправить название главы, тогда мне придется править и содержание и непосредственно название (это самый простой случай). 

Короче хочется найти изящное, универсальное решение как раз для такого случая.

Подохода пока два 

1) Использовать БД - две таблицы в одной названия глав, в другой их содержание
2) Использовать какой-то структурированный файл (например XML), содержащий исчерпывающую информацию, из которого автоматически сгенерировать html странички, содержание и вообще что угодно.


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
sTa1kEr
Дата 6.10.2008, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 11
Всего: 146



Royan, не обязательно это должны быть html файлы, могут быть и php скрипты с инклюдами.

Или даже еще проще - используйте любой подход (или даже любую cms) совместно с reverse proxy. Т.е. прокси будет принудительно кешировать все GET запросы на длительное время, по производительности - это будет даже лучше, чем статические html файлы.
PM MAIL   Вверх
Glip
Дата 6.10.2008, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: нет
Всего: 18



Цитата(Royan @  5.10.2008,  19:45 Найти цитируемый пост)
 а что если мне придется делать еще один аналогичный сайт?

а что если никогда больше не придется? а что если в следующем проекте вам потребуется и ajax и распределение нагрузки и прочее? решайте задачи по мере их возникновения. прогнозирование - вещь хорошая, но злоупотреблять им тоже не стоит smile

Добавлено через 35 секунд
+1 за БД или перегенерацию XML


--------------------
user posted image
PM MAIL   Вверх
destrd
Дата 6.10.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 1.10.2008

Репутация: нет
Всего: 4



Нет так много вариантов то. Все уже предложили. Если БД не хотите, то таже xml'ка будет выступать в роли базы, по  номеру раздела находим содержимое раздела.
Ещё предложили вам хранить в каталогах, но можно хранить не html-файлы, а просто текст. По номеру раздела подраздела находите каталог,  ищите в нём файл, а название файла - название раздела.
Ну можно ещё что-нибудь извращённое придумать:) Например, хранить смещение до начала главы или подраздела, и её размер. И использовать только один файл.

Это сообщение отредактировал(а) destrd - 6.10.2008, 21:27
--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems.        -- Jamie Zawinski in comp.lang.emacs
PM MAIL ICQ   Вверх
Boxa
Дата 1.11.2008, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 25.10.2006

Репутация: -2
Всего: -2



1 таблица в mysql... смысла нет никакого парсить весь файл каждый раз + мало ли понадобится поиск или еще чего.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0759 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.