上篇我们完成了composer的安装准备工作,接下来进行框架路由的搭建。
路由构建
Macaw 是一个简单的开源 PHP 路由器。它非常小(约 150 LOC),速度很快,并且有一些很好的带注释的源代码。这个类允许你把它扔到你的项目中并立即开始使用它。Mcacw文档地址
安装noahbuscher/macaw
$ composer require noahbuscher/macaw dev-master
安装完成后,在入口文件目录下创建.htaccess文件,添加路由重写规则,使得用户请求全都指向入口文件index.php。
Nginx服务下重写规则:
rewrite ^/(.*)/$ /$1 redirect;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
Apache服务下重写规则:
RewriteEngine On
RewriteBase /
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [QSA,L]
nginx修改配置
加载.htaccess规则,修改nginx项目配置文件
server {
listen 80;
server_name www.test.com;
root /Users/ll/Home/www/bd.test.com;
include "/Users/ll/Home/www/bd.test.com/.htaccess";
location / {
index index.php index.html;
add_header REAL_SERVER 80;
}
location ~ \.php(.*)$ {
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000; #nginx fastcgi进程监听的IP地址和端口
# include /nginx/fastcgi.conf; 加载nginx的fastcgi模块<br><br>
# 如果没有fastcgi.conf配置文件的话,就需要动态配置,如果有则只需include配置文件即可
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
实现效果
在入口文件index.php添加noahbuscher/macaw类进行测试
<?php
require('vendor/autoload.php');
use \NoahBuscher\Macaw\Macaw;
Macaw::get('/', function() {
echo 'Hello !!!';
});
Macaw::get('name/(:any)', function($i) {
echo 'Hello ' . $i . '!';
});
Macaw::dispatch();
效果: