2016-02-10 5 views
0

я пытаюсь использовать altorouter для набора маршрутизации карты моего проекта PHP, в данный момент файл routes.php этоaltorouter маршруты не работают

<?php 
$router = new AltoRouter(); 
$router->setBasePath('/home/b2bmomo/www/'); 
/* Setup the URL routing. This is production ready. */ 
// Main routes that non-customers see 
$router->map('GET','/', '', 'home'); 
$router->map('GET', '/upload.php', 'uploadexcel'); 

$match = $router->match(); 

// call closure or throw 404 status 
if($match && is_callable($match['target'])) { 
    call_user_func_array($match['target'], $match['params']); 
} else { 
    // no route was matched 
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found'); 
} 
?> 

У меня есть 2 файла в основной директории моего проекта, index.php и upload.php, что случилось?

ответ

0

есть вы изменили ваши файлы .htaccess переписать в соответствии с the altorouter site?

ваши маршруты выглядят неправильно. попробуйте так:

// 1. protocol - 2. route uri -3. static filename -4. route name 
$router->map('GET','/uploadexcel', 'upload.php', 'upload-route'); 

, как это выглядит, как вы хотели статические страницы (а не контроллер) попробовать это (позволяет одновременно):

if($match) { 
     $target = $match["target"]; 
     if(strpos($target, "#") !== false) { //-> class#method as set in routes above, eg 'myClass#myMethod' as third parameter in mapped route 
      list($controller, $action) = explode("#", $target); 
      $controller = new $controller; 
      $controller->$action($match["params"]); 
     } else { 
      if(is_callable($match["target"])) { 
       call_user_func_array($match["target"], $match["params"]); //call a function 
      }else{ 
       require $_SERVER['DOCUMENT_ROOT'].$match["target"]; //for static page 
      } 
     } 
    } else { 
     require "static/404.html"; 
     die(); 
    } 

, который в значительной степени здесь: https://m.reddit.com/r/PHP/comments/3rzxic/basic_routing_in_php_with_altorouter/?ref=readnext_6

и избавиться от этой линии базового маршрута.

удачи

0

вы автомобиль пробег класса # функция через "call_user_func_array":

if ($match) { 

     if (is_string($match['target']) && strpos($match['target'], '#') !== false) { 
      $match['target'] = explode('#', $match['target']); 
     } 

     if (is_callable($match['target'])) { 
      call_user_func_array($match['target'], $match['params']); 
     } else { 
      // no route was matched 
      header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found'); 
      die('404 Not Found'); 
     } 
    }