Как и къде е по-добре да съхранявате структурата на сайта
Не, планираме да стартираме голям проект, така че XML вече не е необходим. Затова ще го внедря в таблица с база данни, по съвет наSerkys. Благодаря ти! =)
Добре тогава, един последен въпрос - как да получа пълен url в php с всички параметри на страницата, която се отваря? Спомням си как да стигна откъдето дойдох, но не помня сегашния. Кажете ми моля..
IMHO ще трябва да се направят много запитвания, когато се опитвате да проследите наследството. Но често това може да не е така. . Можете също така да напишете в сесията секциите, посетени преди (повечето посетители ще преминат през целия път на наследяване, а не веднага по връзката, и ако има недостиг, те вече ще бъдат извадени от базата данни. Трябва да помислите за всичко това, по някакъв начин ще го разбера по-късно (аз самият ще трябва да разреша този проблем в близко бъдеще). Разбира се, има много проблеми на пръв поглед, но, както ми казва опитът, почти всички ще изчезнат в процеса на мислене / писане и останалите могат да бъдат заобиколени с малки загуби.
Цитат |
Хм, какво не е наред с изпращането на имена на модули чрез GET? Например /?go=download |
Как ще направите дървото на сайта? Е, това е влагането на секции. Копаенето да се съхранява в DB е най-нормалния вариант за създаване на универсална CMS. И по-нататък вече да се оптимизира, освен ако.
Зададох се да направя двигател, който изобщо не използва базата данни за статични страници. Намерих две приемливи опции за съхранение на структурата:
1. Ако сайтът е малък, можете да съхраните цялата структура в един файл като PHP код (вложени масиви). Плюсове - нетрябва да анализирате XML - просто го включете и това е. Да научите CMS да генерира такъв файл изобщо не е трудно.
2. Ако сайтът е среден, поставяме стандартен файл в корена на всяка директория - например menu.dat, съдържащ отново PHP код като този:
Анализирайте URL адреса на страницата, намерете всички директории, в които е вложена страницата - например: http://domain.ru/dir1/dir2/dir3/page.html дава масив: eval(), за да получите менюто на съответното ниво.
Структурата в този случай е разпределена във файловата система. Но всичко е удобно - на една ръка разстояние.
Предимствата са, че статичните страници на сайта ще работят дори ако базата данни лъже. Удобно е да редактирате навигацията в секции.
Минуси: трябва да прочетете определен брой файлове - от 1 до N; N = брой вложени нива + 1.
Вторият вариант работи на средно голям проект, което ми е удобно.
В тези части на сайта, където се използват модули, които генерират съдържание от базата данни, навигацията през страниците на такива модули се възлага на тях.
Мисля, че вторият подход може да се използва с DB. Можете да направите пътеките първичен ключ (същият масив('', 'dir1/', 'dir1/dir2/', 'dir1/dir2/dir3/')) и да напишете цялата структура на директорията като петно директно в PHP код, отново и да изпълните eval(). Тогава всички данни за създаване на меню за конкретна страница се вземат в една заявка. Предполагам, че ще се получи бързо.