Нудистика - или то о чем все знают, но не хотят учитывать

733
.
Нудистика - наука о занудстве (бытует мнение что это не наука вовсе, а талант).
Не буду оригинальничать, на сайте около "php"шной тематики, предпочту писать о php.
Не буду как все, не буду писать что нового в той или иной версии php.
По скольку это типа блог, буду писать свои мысли.
о программировании, верстке, дизайнах, и в основном, о самом подходе к созданию сайтов
.
и так:
я сейчас слегка пьян, так что на ошибки не смотрите.
Давайте представим, что вы таки решились создать сайт с нуля.
Далее все мысли будут только исходя из того, что у вас ни чего нет кроме вашего мозга.
Ну что ж..
Представим что вы решили создать (соц-сеть|портал|сервис|софтверный сайт|информационный сайт)*

* товарищам не понявшим (не уверенным что они верно поняли) данную строку, => проходите мимо, это точно не для вас.
.
интерфейс тут ужасен.
___________________________


и так.
открыли редактор, придумали что мы будем писать, что дальше?
Дальше (все дальнейшие рекомендации это мой личный опыт, можете прислушиваться, можете спорить, можете пройти мимо)
что нам надо?
ядро
давайте подумаем, что на самом деле есть ядро?
нет, это не "системные файлы" нашего скрипта.
Это нечно более универсальное, и гибкое, это набор функций (не пхп функций, а именно функций, на все случаи жизни)
Исключим из этого все функции фильтраций, и обработок строк (ббкоды, чистка от мусора, и т.д.) тут вы сами себе советчики.
так что нам надо создать?
предположим что мы хотим иметь несколько версий сайта, красивые урлы, и наличие пользователей на сайте.
и так, какие цели?
* ЧПУ
* Шаблоны
* Авторизация
* Оптимизация
* Хранение данных.
_________________
1. ЧПУ
что есть чпу? человеку-понятные урлы.
В чем плюсы?
а. адрес как бэ намекае, а адрес не врет, ибо он адрес.
б. (следствие (а) вступление в (3): поисковые запросы, и еще раз поисковые запросы.
а-1) Пауки индексируют адреса так же как и текст.
а-2) Люди видя в гугле ссылку на страницу у которой адрес содержит в себе суть их поиска, доверяют ей больше (ибо это адрес, а не просто заголовок не подходящий содержимому страницы)
а-3) ЧПУ это не site.ru/file/1/ это site.ru/file/windows-7-installer/
ваше site.ru/file/1/ также несодержательно как и site.ru/file/index.php?act=view&id=1
.
2. ЧПУ (продолжение)
пара моментов.
как правильно организовать чпу?
урлы могут быть довольно сложными, и выборка по ним тоже.
как правильно организовать?
помните это
site ru/files/12345/windows-7-installer/ ?
обратите внимание на это
site ru/files/12345/windows-7-installer/
12345 это если вы еще не догадались, ID записи (в бд, или где вы еще предпочтете хранить ваши данные)
т.е. вам не надо искать по тексту.
кто знаком с бд хоть немного, тот конечно знает, что поиск по тексту медленнее чем по номеру, тем более, если этот номер AUTO_INCREMENT (т.е. индекс).
и так, ищем по ид, можем сравнивать вторую часть строки site ru/files/12345/windows-7-installer/ с именем файла (или точнее с тем из чего мы изначально генерировали ссылку на эту страницу), а можете и вовсе не обращать на эту часть внимания, и оставить ее на радость поисковикам;)
_________
ЧПУ (дополнение)
как быть, адрес site ru/files/12345/windows-7-installer/
и адрес site ru/files/12345/
на разные страницы, но id у них один и файл тоже?
Создавать многоэтажные конструкции в хитаччес (.htaccess) ?
Не лучший вариант.
Так что делать?
.
3. REWRITE роутер силами PHP:
Есть несколько способов реализации.
С использованием Mod Rewrite, или например с использованием страниц ошибок (404)
3-a. Rewrite Rule:
Что нам надо?
Одно простое правило, которое переадресовывает все запросы на 1 страницу (index.php в корне сайта).
3-б. Как работает?
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^(.*?)/$ index.php?rewriter=$1 [L,QSA]
</IfModule>

одно простое правило, перенаправит любой запрос на index.php в корне, и передаст все что было найдено до / как переменную.
3-в. Что это дает?
* Все запросы идут к нам, мы все их контролируем, и можем реагировать на них как нам надо (будь то валидный запрос, или попытка взлома)
* Все страницы подключаются только если наш скрипт это одобрит.
* Все страницы изначально имеет набор подключенных компонентов из основного файла (того к которому они подключаются, тот же index.php)
* Физического доступа к файлам страниц нет, адрес их хранения получить невозможно (например site.ru/file/12345/windows-7-istaller/ может лежать на самом деле по адресу /template/content/file/view.php
а может и еще где.
* Но есть и минус. нам необходимы правила исключений (не всегда нам необходимо авторизировать пользователя, а авторизация проходит в рутовом файле независимо от того нужно нам это или нет)
необходимо изначально учесть такой момент, иначе потом придется долго исправлять, или пренебречь неоправданными телодвижениями
.
Дальше пока писать лень, как будет настроение, продолжу)))
.
╭∩╮ (`-`) ╭∩╮
БП кросафчег
Пока нечеталъ, но вижу, что размышления серьезные, вечером буду асиливать.
З.Ы.
Пешы исчо
.
ramzes (25.04.2012/22:34)
3. REWRITE роутер силами PHP:
Есть несколько способов реализации.
С использованием Mod Rewrite, или например с использованием страниц ошибок (404)
Я бы еще добавил что лучше конечно использовать реврайт а не 404 т.к. как по мне это костыль, самому 404 ошибки обрабатывать и т.д.
.
Screamer (26.04.2012/08:18)
Я бы еще добавил что лучше конечно использовать реврайт а не 404 т.к. как по мне это костыль, самому 404 ошибки обрабатывать и т.д.
404 удобнее тем у кого нет мод реврайта, но есть ощутимый минус, дикое засирание логов ошибок, по этому если и буду описывать этот метод, то только краем, не вижу смысла
.
ramzes, Ах да про это забыл совсем.
Всего: 38