1. PHP / Говнокод #16510

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    <?php
    
    /**
     * Мощная система маршрутизации.
     */
    
    $uri = trim($_SERVER['PATH_INFO'], '/');
    $split = explode('/', $uri);
    
    $numSplit = count($split);
    
    switch ($numSplit) {
        default:
            $params = array(
                'module' => 'frontpage',
                'action' => 'index'
            );
            break;
    
        case 1:
            $params = array(
                'module' => array_shift($split),
                'action' => 'index');
    
            break;
    
        case 2:
            $params = array(
                'module' => array_shift($split),
                'action' => array_pop($split));
    
            break;
    }
    
    $filename = __DIR__ . '/modules/' . $params['module'] . '/' . $params['action'] . '.php';
    
    if (file_exists($filename)) {
        include_once $filename;
    } else {
        echo 'Такой страницы не существует!';
    }
    
    ?>

    Реализация системы роутинга на PHP.

    Запостил: Progress, 08 Августа 2014

    Комментарии (4) RSS

    • Лучше б редирект на 404 был в конце.
      Ответить
    • С одной стороны, эти проверки и преобразования понятны и логичны. С другой - сначала пытаются выдумать, какой бы файл приинклюдить, проверяют, а голова в тумбочкефайла-то и нет. При этом, это косяк именно сайта, но почему-то на ожидаемое действие ответ, что страница не существует.
      Загадочно.
      Ответить

    Добавить комментарий