@niriter
Niriter Inc. - я хз как это работает....

Роутинг на PHP?

Есть запрос, на страницу example.com/admin/edit, нужно что бы был роутинг типа
class admin {
    function edit()
    {
        ...
    }
}

Не могу придумать ничего путевого что бы так реализовать...

p.s. .htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /switcher.php?$1 [QSA,L]
</IfModule>
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
Зависит от задачи, насколько сложный роутинг требуется

Вот есть видео об устройстве роутинга в современных фреймворках. Посмотрите не поленитесь, лучше чем велосипеды городить.

https://elisdn.ru/blog/113/psr7-framework-http
https://elisdn.ru/blog/114/psr7-framework-router

Уже был похожий вопрос на тостере.
Как сделать простой php маршрутизатор (роутер)?

Если надо быстро и по тупому - то просто берем строку из $_SERVER['REQUEST_URI'], парсим ее и получаем из нее имя контроллера и экшена, сложно что ли?
<?php
class admin{
    function edit(){
        echo "Hello World";
    }
}
//парсим REQUEST_URI
$explode = explode('/',$_SERVER['REQUEST_URI']);
//выбираем имя контроллера и метода
$controllerClass = $explode[1];
$action = $explode[2];
//вызываем
call_user_func_array([$controllerClass,$action],[]);


Ну и под конец https://google.gik-team.com/?q=%D0%A0%D0%BE%D1%83%...
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
m0pfin
@m0pfin
phpНУБ
В микрофреймворке Slim хороший роутинг
Ответ написан
@DiaTMs
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php

#RewriteRule (.*) index.php?url=$1 [L,QSA]
Ответ написан
codeturn
@codeturn
Передавайте все на index.php а потом из $server получаете полный запрос, разбиваете его и подключаете нужный класс. А лучше забросить эту идею и начать изучать какой-нибудь фреймворк.
Ответ написан
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
mvc?

class AdminController extends BaseController{
    
    public function __construct(){
        parent::__construct();
    }

    public function editAction(){
        doSomeEdit();
        $this->view->renderView();
    }
}


BTW: что за тег сетевая маршрутизация в вопросе???
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
HTML Academy Санкт-Петербург
от 110 000 до 130 000 руб.
CENTRA Новокузнецк
от 50 000 руб.
от 1 500 до 2 500 usd.