Я делаю свой первый php роутер и перепробовал много уроков, например:
Простейший php роутер , Как построить базу c серверная сторона ...
И еще несколько, и, наконец, пошли на этот подход Создание PHP системы маршрутизации
Сначала моя проблема заключалась в том, что Я получил только пустые страницы, но после некоторой помощи отсюда я справился с этой проблемой, и теперь все работает нормально, за исключением того, что я получаю неопределенное смещение: 0 на моей стартовой странице.
Я использую array_shift, и после этого мой массив пуст:
array(0) { }
Так что я вижу, что это бесполезно для использования, но проблема в том, если я удалю его или возьму При другом подходе мой роутер перестает работать.
Вот мой маршрутизатор. php, где возникает проблема:
<?php
class Router{
private $request;
public function __construct($request){
$this->request = $request;
}
public function get($route, $file){
$uri = trim( $this->request, "/" );
$uri = explode("/", $uri);
// var_dump($uri);
$route = trim($route, "/");
var_dump($route);
// if(isset($uri) == $route){
array_shift($uri);
var_dump($uri);
if($uri[0] == $route) {
// var_dump($uri);
require __DIR__ . $file . '.php';
}
// }
}
}
?>
Я пытался обернуть $ uri [0] в оператор if (isset ..), но это также делает остановку роутера Я искал в руководстве php различные функции массива, но, честно говоря, я не понимаю, что делает половина из этого. По большей части я получаю большинство знаний от поиска на этом форуме и часто решаю его таким образом, но это действительно сильно застряло.
Кто-нибудь, кто знает, как избавиться от этой ошибки смещения?