За последние 24 часа нас посетили 17690 программистов и 1723 робота. Сейчас ищут 882 программиста ...

Система роутинга страниц

Тема в разделе "Прочие вопросы по PHP", создана пользователем kirill040893, 2 ноя 2014.

  1. kirill040893

    kirill040893 Новичок

    С нами с:
    2 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте, форумчане. Помогите решить проблему. Не как не могу найти хороший, не большой но функциональный класс роутинга страниц. Самому писать сейчас нет времени. Да и боюсь так вот слету не чего хорошего не напишу. Возможно у кого нибудь есть уже какие нибудь наработки? Нужен класс который позволит максимально гибка править адреса страниц. Заранее благодарю за помощь.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    для своих систем всегда лучше всё самому писать. так больше понимания. если заимствовать у кого-то то может сразу весь фреймворк или си-эм-эс использовать и не программировать самому?
     
  3. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
  4. kirill040893

    kirill040893 Новичок

    С нами с:
    2 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Проект предстоит писать довольно специфический так что готовую смс не вариант. А у вас случайно нет готового небольшого фреймворка?

    Добавлено спустя 1 минуту 56 секунд:
    Да я уже гуглил ну только не чего достойного не нашел. Либо кривой либо слишком большой=)
     
  5. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Вот простой маленький framework http://silex.sensiolabs.org/ но лучше посмотри Symfony2 там много уже готового сразу.

    Какие требования у тебя к фреймворку?
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    есть но он не подойдет под ваш специфический проект.
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    kirill040893, я тебе дам начальную подсказку, дальше сам. чур не попрошайничать!

    если таблицу маршрутов задавать как-то так:
    Код (PHP):
    1. $routes = array(
    2.   '/profile' => 'User:index',
    3.   '/profile/socials' => 'User:socials',
    4.   '/dashboard' => 'Admin:index',
    5. );
    то элементарно найти соответствие адрес → метод контроллера
    Код (PHP):
    1. $uri = $_SERVER['REQUEST_URI'];
    2. if (isset($routes[$uri])) {
    3.   list($class, $method) = explode(':', $routes[$uri]);
    4.   $o = new $class();
    5.   $o->$method();
    6. } else {
    7.   die('Wrong address');
    8. }
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А в моём движке соответствие задается положением в папке... Очень удобно.
     
  9. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    ???
    Тебе надо получить урл вида /controller/action/params распарсить expode и в соответствии с именем controller подключить нужный файл, потом вызвать в нем метод action.
    Это простейший рутинг.
    Какие у тебя вопросы?
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Простейший роутинг обеспечивает сам веб-сервер с его виртуальной файловой системой. Некоторые повторяют этот функционал уже на уровне приложения.
     
  11. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А какое это отношение имеет к вопросу ТС?
    Как я понимаю он хочет на уровне приложения контролировать обработку урлов.
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Никакого отношения, кроме того, что это самый настоящий роутинг запросов. )))
    Чего хочет топикстартер, он и сам, походу, не очень хорошо понимает. Главное чтобы без напряжения. Так что вариант "переложить всё на файловую систему" очень даже рабочий.

    Добавлено спустя 1 минуту 20 секунд:
    "Гибка править адреса страниц" очень просто — перенес файл в другую папку или переименовал — вот тебе новый адрес страницы.