За последние 24 часа нас посетили 20399 программистов и 1014 роботов. Сейчас ищет 381 программист ...

Изменение url'a

Тема в разделе "PHP для новичков", создана пользователем AlexG, 6 мар 2018.

Метки:
  1. AlexG

    AlexG Новичок

    С нами с:
    10 ноя 2017
    Сообщения:
    18
    Симпатии:
    0
    Всем привет, давненько не заходил =)
    Появилась интересная задача, частично разобрался, но есть несколько вопросов. Имеется проект, я его организовывал так (структура папок/каталогов):
    Код (Text):
    1. myProject.ru
    2. |- index.php
    3. |- config.php
    4. |- ...
    5. |- core
    6.    |- include
    7.    |- css
    8.    |- js
    9.    |- ...
    10.    |- view
    11.       |- view1.php
    12.       |- view2.php
    13.       |- ...
    Собственно, вьюхи (они содержат в основном 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 для подгрузки страниц во фрэйм, а при изменении страниц во фрейме в урл добавляю соответсвующий хэш)?
    Так же понятно, сделаю скрипт, как правильно отследить событие со сменой урл, и соответственно вызвать мой скрипт для обработки.
    Заранее спасибо.
     
  2. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    1) Почему вьюха у вас отвечает за выдачу данных ? Контроллер где-то потерялся ?
    2) Если не существует роутинга, статического (немспейсы) или динамического (regex-like), вам следует его написать.
    3) Можно использовать. подводные камни с историей (вперёд, назад) и события смены урл.
    На последнее потратил около часа (google->stackoverflow)
     
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Как то много букоф а что mod_rewrite не подходит?
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    @AlexG, мне уже прям интересно, какую роль у вас играет файл index.php. Знаю схемы «фронт-контроллер->контроллер->вид» и «фронт-контроллер->вид», но чтобы сразу «вид»??? Это уже множественные точки входа какие-то, а не вьюхи...
     
  5. AlexG

    AlexG Новичок

    С нами с:
    10 ноя 2017
    Сообщения:
    18
    Симпатии:
    0
    Ну если знаете, пользуйтесь и пишите. Я использую, то что мне удобно. Вопрос был другого плана.
     
  6. AlexG

    AlexG Новичок

    С нами с:
    10 ноя 2017
    Сообщения:
    18
    Симпатии:
    0
    Собственно, о php я узнал 3 с копейками месяца назад =)) еще со всем не разобрался, но для собственных нужд хватает такого подхода. Я конечно вкурсе существования MVC, но пока "руки не дошли", да и пишу я для собственных нужд. Схема такая, есть вьюха (выводит данные и получает входные данные) - опермодуль (который формирует запросы и ответы представляет в нужном виде для вьюхи) - база. Как-то так. Ранее писал десктопный софт, там немного по другому, еще не перестроился. Роутинг не используется, но уже читаю о нем, думал что он более используется в руби на рельсах. Сейчас изучу вопрос, спасибо.
    З.Ы. stackoverflow - если имелся ввиду сайт, то я его посещаю периодически.
    --- Добавлено ---
    Спасибо, не знал о нем, как вариант для решения, изучаю.
     
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Потому и спрашивали на счет индекс. Делаешь перенаправления всех запросов на index.php при помощи mod_rewrite
    А там уже проверяешь какую страницу отдать можешь прям через include
     
  8. AlexG

    AlexG Новичок

    С нами с:
    10 ноя 2017
    Сообщения:
    18
    Симпатии:
    0
    Сам индекс никакой особой роли не выполняет, т.е. выводит "горячие сообщения" и авторизация. А примерчика нет с кодом?
     
  9. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    @AlexG, если отстали от жизни, нефиг отфутболивать, не вникнув в суть написанного. Современные сайты стоятся на основе единой точки входа и, как следствие, роутинга. Вот специально для недавно вышедших из комы писал: Как сделать единую точку входа с ЧПУ?
     
    #10 miketomlin, 6 мар 2018
    Последнее редактирование: 6 мар 2018
  11. AlexG

    AlexG Новичок

    С нами с:
    10 ноя 2017
    Сообщения:
    18
    Симпатии:
    0
    Возможно и отстал, а возможно и делал успехи в других отраслях, как знать.