使用Flight框架的PHP路由


Routing in PHP using the Flight framework

我没有任何PHP框架经验,只是对它们的使用有一些非常普遍的问题:特别是URL路由。

我使用的是微框架,飞行。

简单路由示例:

<?php
    // Flight Framework
    require "flight/Flight.php";
    Flight::route('/', function(){
        echo 'hello world!';
    });
    Flight::start();
?>

当我访问这个页面(/)时,我会收到"你好世界"的消息。很好,工作很好。

我的问题是,路由是否用于不存在的URL(例如/categies)?然后,当用户访问该页面时,会调用该函数吗?

因此,如果我将路线更改为"/categies",那么访问/categies时不应该显示"你好世界"功能吗?

为了实现预期效果,您需要启用URL重写。如果您使用apache作为web服务器,使用Mod rewrite可以实现这一点。当URL被重写时,web服务器将所有不存在的路径URL路由到index.php,并让index.php处理请求。以下是放置在.htaccess文件中的这种重写代码的示例。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

使用Flight时,使用PHP的内部web服务器要容易得多。至少用于测试目的。

php -S <url>:<port>