[Решено] Не работает часть кода маршрутизатора

Тема в разделе "PHP", создана пользователем sp7211Сергей, 26 июл 2020.

Статус темы:
Закрыта.
  1. sp7211Сергей

    sp7211Сергей

    Регистрация:
    26 июл 2020
    Сообщения:
    0
    Симпатии:
    0
    PHP:
    <?php
    namespace test_shop;
    class 
    Router
    {
    protected static 
    $routes = [];
    protected static 
    $route = [];

    public static function 
    add($regexp$route = [])
    {
       
    self::$routes[$regexp] = $route;
    }

    public static function 
    getRoutes()
    {
       return 
    self::$routes;
    }

    public static function 
    getRoute()
    {
       return 
    self::$route;
    }

    public static function 
    dispatch($url)
    {
       if (
    self::matchRoute($url)){
           echo 
    'OK';
       }else {
           echo 
    'NO';
       }
    }

    public static function 
    matchRoute($url)
    {
       foreach (
    self::$routes as $pattern => $route) {
          if (
    preg_match("#{$pattern}#"$url,$matches)) {
              foreach (
    $matches as $k => $v) {
                  if (
    is_string($k)) {
                      
    $route[$k] = $v;
                  }
              }
              if (empty(
    $route['action'])){
                  
    $route['action'] = 'index';
              }
              
    debug($route);
              return 
    true;
          }
       } return 
    false;
    }
    }
    На странице выходит надпись NO, хотя должен появиться массив. Где ошибка?
     
    Lasted edited by : 26 июл 2020
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    какой массив, какой из методов вы вызываете и почему он должен появится?

    желательно добавить кусок кодяры с вызовами методов из класса.
     
  3. sp7211Сергей

    sp7211Сергей

    Регистрация:
    26 июл 2020
    Сообщения:
    0
    Симпатии:
    0
    спасибо за отклик, я проверил код в других файлах и исправил ошибки. Все сработало. debug($route);- создан для проверки что находиться в переменной и там списком выходит page->controller....
     
Статус темы:
Закрыта.