ФорумПрограммированиеPHP для идиотов → возня с Zend_Controller_Router_Route_Regex

возня с Zend_Controller_Router_Route_Regex

  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz Июль 5, 2010, 6:37 п.п.

    Интересная ситуация. Мне нужно чтобы страница правильно воспринималась роутером как через адрес www.mysite.com/dl/34578 так и через www.mysite.com/dl/

    Я - человек законопослушный - все делаю по ману).
    $router->addRoute('dl',
    new Zend_Controller_Router_Route_Regex('dl/(\d*)',
    array('controller' => 'index', 'action' => 'dreamwaredl')//,

    )
    );

    Все путём. И действительнов все, потомучто у меня пара адресов через простой Zend_Controller_Router_Route пашет на ура.
    Тоесть проблем с этими роутами вообще нет.
    Обратите внимание - я применил регулярку 'dl/(\d*)'. Страницу то роутер видит, но когда я захуячу www.mysite.com/dl/ то Зенд пошлет меня, сказав что такого контроллера не существует. Я то знаю что не существует, но регулярка с метасимволом "*" значит что - повторяется 0 или большее число раз. Тоесть если ноль(мой вариант), то посути роутер должен был бы воспринять адекватно, и гет-параметр(1) отдампить как null.

    Где искать выход?


  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Июль 5, 2010, 6:40 п.п., спустя 2 минуты 30 секунд

    Rotten, так добавь подобный без (\d*) :)

    с зендом не работал, но если быть логичным, то так должно сработать
    Сапожник без сапог
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz Июль 5, 2010, 6:47 п.п., спустя 7 минут 32 секунды

    да не, (\d*) должен быть… потом просто параметры ж надо выгребать, а они как номера найденных групп по регулярке идут.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Июль 5, 2010, 6:49 п.п., спустя 2 минуты 5 секунд

    Rotten, я говорю - добавь еще роут
    Сапожник без сапог
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz Июль 5, 2010, 6:52 п.п., спустя 3 минуты 3 секунды

    понял я…
    чето вообще не реагирует)…
    ладно, буду рытся дальше..
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Июль 5, 2010, 11:49 п.п., спустя 4 часа 56 минут 56 секунд

    может он режет крайний слеш?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz Июль 6, 2010, 6:08 д.п., спустя 6 часов 18 минут 39 секунд

    imo, так и есть
    ιιlllιlllι унц-унц
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Июль 6, 2010, 11:28 д.п., спустя 5 часов 20 минут 5 секунд

    Rotten, добавьте параметр по умолчанию

    $router->addRoute('dl',
    new Zend_Controller_Router_Route_Regex('dl/(\d*)',
    array('controller' => 'index', 'action' => 'dreamwaredl', 1 => 0 // я имею виду это),

    )
    );

    Спустя 51 сек.
    тогда, по идее если будет yoursite.com/dl/, то он подставит значение по умолчанию
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Июль 6, 2010, 11:32 д.п., спустя 3 минуты 48 секунд

    какой пративный зенд роутинг … стопудово еще и скорость у него страдает :D
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Июль 6, 2010, 11:35 д.п., спустя 3 минуты 4 секунды

    мне не нравится то, что каждое правило - объект
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Июль 6, 2010, 11:43 д.п., спустя 8 минут 14 секунд


    мне не нравится то, что каждое правило - объект
    байтодрочер?
    Спустя 62 сек.
    я уже последнее время вообще забил на это, пишу оопшно, код красивее + в пхпдоке подсказывается, да и выполняется под опкод кешерами не медленнее массивного, пхп он такой, черезжопный, не удивлюсь что в каком нить билде объекты будут быстрее массивов работать
    Сапожник без сапог
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz Июль 6, 2010, 12:56 п.п., спустя 1 час 12 минут 43 секунды

    спасибо всем за внимания, но не хочет есть и все… возможно он сначала всегда ищет индекс екшн.. шо ли..
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Июль 6, 2010, 1:37 п.п., спустя 40 минут 41 секунду

    Rotten, совет krasun не помог?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz Июль 7, 2010, 2:42 п.п., спустя 1 день 1 час 5 минут

    нет… параметры по дефолту не помогли(
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Июль 7, 2010, 4:41 п.п., спустя 1 час 59 минут 9 секунд

    Покажите, последнюю версию кода, которая не работает(желательно с параметрами по умолчанию)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!