Jsnpp框架的路由配置
发布时间: 2021年5月9日 下午4:27 作者: Jsnpp 访问量: 62

我们在前面的教程里面介绍了Jsnpp框架基本的路由规范,以及带参数路由的使用和接收参数,这一篇我们进一步来学习Jsnpp框架的路由配置。

默认情况下,Jsnpp框架使用的是我们之前介绍过的路由规则,但是我们还可以对一些特殊路由进行配置。Jsnpp框架的路由配置分两个部分,一部分是在“config.php”文件里面,另一部分是在“routing.php”文件里面,这两个配置文件都存放于“config”目录里面。

下面我们来逐一说明,先来看“config.php”文件。

“config.php”配置文件是Jsnpp框架的主配置文件,大部分的配置项都在这里,您可以根据需要设置配置项的值。这里我们介绍的是关于路由的配置项,关于路由的配置项有这么几个:“controller”,“mainroute”,“twosegment”,“alone”。

我们详细来说明:

“controller”配置项用于规定控制器,默认情况下有一个“Index”的控制器,那么在这个配置项里面我们要把这个控制器的名称写进去:“'controller' => ['index']”,注意:“controller”配置项里面的控制器名不需要首字母大写,只需要小写就可以了。如果您添加了其他控制器,那么需要在这里添加,例如我们添加了一个user控制器,那么需要这么写“controller”配置项:

'controller' => ['index', 'user']

您在实际代码里面添加了几个控制器,那么就需要在这里对应写几个。

“mainroute”配置项用配置主路由,例如我们可以把显示文章内容的路由设置成主路由,因为一般情况下,文章的页面肯定是最多的。这里的配置值描述的是一个方法,这个方法是在“Index”控制器里面的方法。也就是说,我们可以设定“Index”控制器里面的一个方法来作为主方法,对应这个主方法的路由就是主路由。

“twosegment”配置项用于配置只有一个参数的路由,并且方法也是在“Index”控制器里面的,这时候我们可以把路由简化成:

http://域名/方法/参数值

这里省略了控制器以及参数名,可以省略的前提是您在配置“twosegment”的时候设定哪些方法是可以这样访问的。

“alone”配置项用于配置没有参数的路由,并且也是在“Index”控制器里面的方法。当您配置了这个路由项后,就可以像这样进行访问:

http://域名/方法

以上路由省略了控制器的名称,只有一个方法,这个方法就是“alone”配置项里面设定的。

下面介绍“routing.php”文件里面怎么配置。

我们可以看默认的代码:

return [
'index/archives' => 'archives/{id}',
'index/category' => 'category/{id}',
];

上面的代码就是系统默认的配置,我们发现这里实际上是一个数组,数组的每个项里面,其键是“控制器/方法”这种形式,值是浏览器地址栏里面输入的访问地址的格式。

我们来看上面的例子,像“'index/archives' => 'archives/{id}'”这个例子的键部分很明确了,就是表示“Index”控制器的“archives”方法,这也是地址访问后最终执行代码的地方。

再看右边“archives/{id}”,这表示,我们可以用下面的路由形式来访问“Index”控制器的“archives”方法:

http://域名/archives/1

访问上面的地址就会执行对应“Index”控制器的“archives”方法,并且会给方法传递参数,参数名是“id”,参数值这里示例是“1”。

在“archives”方法里面,我们可以通过“$param['id']”这样的方法来获取这个id值“1”。

出错
提交成功!
评论已经提交。
我们已经收到您的反馈!
/index/like.html
/index/dislike.html
/index/postpassword.html
Jsnpp
自豪地采用 Jpwrt