Всем привет, давненько не заходил =) Появилась интересная задача, частично разобрался, но есть несколько вопросов. Имеется проект, я его организовывал так (структура папок/каталогов): Код (Text): myProject.ru |- index.php |- config.php |- ... |- core |- include |- css |- js |- ... |- view |- view1.php |- view2.php |- ... Собственно, вьюхи (они содержат в основном html, возможно вызов некоторых функций, которые находятся в инклуд, грубо говоря html-макеты страниц) находятся по такому пути: myProject.ru/core/view/ Ну и естественно, если указать имя самого макета, то все работает: myProject.ru/core/view/view1.php Хочу обработать урл, чтоб выглядел так, без перемещения самих файлов: myProject.ru/view1.php, ну и при переходах так далее: myProject.ru/view2.php Какие будут идеи, где об этом можно почитать? Так же пишу скрипт (php) по обработке get-запросов, хотелось бы рассмотреть примеры и документацию. Смысл в следующем, человек приходит по какому-то урл, естественно надо обработать сам урл (ввиду, изменений указанных выше), и параметры и хэши. Еще момент, в стандартном виде get: myProject.ru/?category=5&list=3#show А можно ли использовать: myProject.ru/#show?category=5&list=3 (т.е. параметры после хэша, т.к. использую ajax для подгрузки страниц во фрэйм, а при изменении страниц во фрейме в урл добавляю соответсвующий хэш)? Так же понятно, сделаю скрипт, как правильно отследить событие со сменой урл, и соответственно вызвать мой скрипт для обработки. Заранее спасибо.
1) Почему вьюха у вас отвечает за выдачу данных ? Контроллер где-то потерялся ? 2) Если не существует роутинга, статического (немспейсы) или динамического (regex-like), вам следует его написать. 3) Можно использовать. подводные камни с историей (вперёд, назад) и события смены урл. На последнее потратил около часа (google->stackoverflow)
@AlexG, мне уже прям интересно, какую роль у вас играет файл index.php. Знаю схемы «фронт-контроллер->контроллер->вид» и «фронт-контроллер->вид», но чтобы сразу «вид»??? Это уже множественные точки входа какие-то, а не вьюхи...
Собственно, о php я узнал 3 с копейками месяца назад =)) еще со всем не разобрался, но для собственных нужд хватает такого подхода. Я конечно вкурсе существования MVC, но пока "руки не дошли", да и пишу я для собственных нужд. Схема такая, есть вьюха (выводит данные и получает входные данные) - опермодуль (который формирует запросы и ответы представляет в нужном виде для вьюхи) - база. Как-то так. Ранее писал десктопный софт, там немного по другому, еще не перестроился. Роутинг не используется, но уже читаю о нем, думал что он более используется в руби на рельсах. Сейчас изучу вопрос, спасибо. З.Ы. stackoverflow - если имелся ввиду сайт, то я его посещаю периодически. --- Добавлено --- Спасибо, не знал о нем, как вариант для решения, изучаю.
Потому и спрашивали на счет индекс. Делаешь перенаправления всех запросов на index.php при помощи mod_rewrite А там уже проверяешь какую страницу отдать можешь прям через include
Сам индекс никакой особой роли не выполняет, т.е. выводит "горячие сообщения" и авторизация. А примерчика нет с кодом?
Код (Text): if($_SERVER['REQUEST_URI'] == 'page.php') require('page.php'); elseif() ..... https://gist.github.com/RaVbaker/2254618
@AlexG, если отстали от жизни, нефиг отфутболивать, не вникнув в суть написанного. Современные сайты стоятся на основе единой точки входа и, как следствие, роутинга. Вот специально для недавно вышедших из комы писал: Как сделать единую точку входа с ЧПУ?