【学习笔记】基于Composer创建MVC框架(二)—— 构建路由

参考资料: https://lvwenhan.com/index.php?keyword=composer

  1. 使用noahbuscher/macaw类库,在https://packagist.org/ 搜索 noahbuscher/macaw,打开可以看到macaw的安装和使用。

  2. 修改composer.json文件,内容改成如下:

{
	"require": {
            "noahbuscher/macaw": "dev-master"
	},
	"repositories": {
	    "packagist": {
	        "type": "composer",
	        "url": "https://packagist.phpcomposer.com"
	    }	}}

其中require是这次要安装的noahbuscher/macaw依赖库,repositories指定使用的是国内的镜像,参考http://pkg.phpcomposer.com

  1. 然后用命令行进入到MFFC目录,执行以下命令:

composer update

到这里为止,macaw安装成功。


macaw的使用方法在https://packagist.org/packages/noahbuscher/macaw有详细说明。

  1. 新建MFFC/index.php作为框架的入口。代码:

<?php// 自动加载类require_once './vendor/autoload.php';// 路由配置require_once './config/routes.php';
  1. 新建文件 MFFC/config/routes.php。代码:

<?phpuse NoahBuscher\Macaw\Macaw;

Macaw::get('/', function() {  echo 'Hello world!';
});

Macaw::get('/test', function() {  echo 'Hello world! Test!';
});

Macaw::dispatch();

我们在routes.php里面定义了两个路由。

  1. 配置一下虚拟主机,我这里使用nginx作为服务器,并配置了虚拟主机 http://www.mffc.com,虚拟主机的配置文件内容如下:

server
    {
        listen 80;
        #listen [::]:80;
        server_name www.mffc.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  html/mffc;

        #include other.conf;
        #error_page   404   /404.html;
        #include enable-php-pathinfo.conf;

        location ~ \.php$ {
           root           html/mffc;
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
           fastcgi_split_path_info ^(.+\.php)(.*)$;
           fastcgi_param  PATH_INFO               $fastcgi_path_info;
           fastcgi_param  PATH_TRANSLATED $document_root$fastcgi_path_info;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           include        fastcgi_params;
        }
       
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?q=$1 last;
        }
    }

这里启用了重写,重写规则如下,不设置的话,访问我们定义的/test的时候会报404错误。

if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?q=$1 last;
}

到这里为止,MFFC路由构建成功。