А в остальном согласен с EuGen. Должно быть четкое понимание где стоит делать такой "текучий интерфейс" а где нет.
Пацаны расслабьтесь ) я не гуру пхп, только учусь ) Я всего лишь попробовал написать, рад, что тема у вас вызвала хоть какой-то интерес )
Где - где. Известно где))
Я готов допустить что метод set не очень удачный пример. Возмножно его просто назвать чуть по другому надо было, и таких интуитивных ассоциаций у тебя не возникало бы..
Я сразу оговорюсь, что эта статья для тех кто уже хоть чуть-чуть начал или начинает понимать принципы ООП. Я сам ещё можно сказать "New bie" в этом деле.
Итак думаю критики которые сейчас читают эту статью знакомы с понятием "Текучий интерфейс". Примеры можно встретить во многих фрейворках например Zend. Что-же это такое, рассмотрим пример класса Template :
$tpl->tpl('template/index.tpl');// Загружаем содержимое файла в переменную $content внутри класса
$header=$tpl->parse('template/header.php');// Загружаем содержимое файла в отдельную переменную $header, если разобрать метод класса parse видно, что в конце концов он возвращает строку ( return $this->parse_tpl; )
$body=$tpl->parse('template/header.php');// Аналогично с предыдущей переменной $header
$tpl->set('header',$header);// Метод заменяет в загруженном шаблоне index.tpl все повторы строки {header} на содержимое файла $header
$tpl->set('body',$body);// Аналогично с предыдущем.
$tpl->out_content();// Выводим содержимое
Итак это был обычный пример. А что если немного изменить наши методы класса, пусть они возвращают нам сам класс как объект после завершения :
->set('header',$tpl->parse('template/header.tpl'))// Парсим все {header} на содержимое файла header.tpl
->set('body',$tpl->parse('template/body.tpl'))
->out_content();// Выводим контент..
Сильно не критикуйте, это моя первая статья) Я ужасно нервничал и мог что-то упустить. Если я где-то тут произвел "подмену терминов" напишите всё поправлю.
Попытайся ещё раз прочитать концепцию прежде чем пытаться объяснить, что ты хочешь.
Ты можешь понять что под ЧПУ тебе нужна совсем другая организация обработки GET запросов?
Попробую на пальцах :
У тебя был запрос : http://escms[dot]ru/single.php?id=1
Он обрабатывался файлом single.php в котором была строчка $id = $_GET['id'];
Теперь ты изменив таким образом свой .htaccess как ты указал выше, ПЕРЕНАПРАВЛЯЕШЬ ВСЕ запросы на файл index.php
Я частично понял, что ты хочешь сделать но для этого тебе нужно писать по новому правилу в .htaccess для каждого файла будь то index.php, single.php news.php или любой другой..
Вместо этого в начале статьи тебе предлагают сделать одну точку входа
Тоесть запрос : http://escms.ru/single/1 будет обрабатываться сервером как index.php?single/1
что в этом плохого?
А в файле index.php уже разбивай строку запроса как тебе нужно и обрабатывай её, загружая single.php или news.php в зависимости от того что указано в запросе..
Тогда зачем ты что-то правишь? Убери эти строки в .htaccess и у тебя по дефолту без правки .htaccess запрос site.ru/reg.php и так адресуется на reg.php я не понимаю что ты хочешь тогда...
Проверь в файле настрое Apache (httpd.conf) включен ли модуль mod_rewrite.
LoadModule rewrite_module modules/mod_rewrite.so
Estenny пишет:
Получается, теперь на запрос site.ru/reg меня должно переносить на страницу reg.php и выводить It`s reg.php!? Не-а, выдает ошибку.
Нет. Index.php у тебя теперь единая точка входа. Т.е все запросы site.ru/ будут переадрисовываться на index.php и твой запрос site.ru/reg будет поправде выглядеть в данном случае как site.ru/index.php?reg
DeepVarvar молодец, я сам ещё только-только начинаю понимать все эти термины и многие из них пока для меня дремучий лес. Важно не то, что ты кому-то тут чуть не подменил важные понятия этих терминов, а то, что вообще взялся за это. Считай ты своими словами просто пытался объяснить, как считаешь сам, нужно объяснять человеку который плохо понимает или вообще не имеет представления о этих вещах.
Остальные я считаю вместо критики лучше бы помогли дополнить или как-то привести в более удобный вид статью. Такими нападками вы все желание у человека тварить новые материалы по этой теме отобьете.