CI4框架应用四 - 第一个页面

我们来看一下CI4框架的默认页面是如何实现的。

 

我们先来认识一下路由文件(app\Config\Routes.php),这个文件非常重要,且功能强大,它定义了URL模式及响应处理方法,我们先看一下这个文件的部分内容。

 1 /**
 2  * --------------------------------------------------------------------
 3  * Router Setup
 4  * --------------------------------------------------------------------
 5  */
 6 $routes->setDefaultNamespace('App\Controllers');  // 设置默认的命名空间
 7 $routes->setDefaultController('Home');   // 设置默认的控制器
 8 $routes->setDefaultMethod('index');      // 设置默认的方法
 9 $routes->setTranslateURIDashes(false);
10 $routes->set404Override();
11 $routes->setAutoRoute(true);
12 
13 /**
14  * --------------------------------------------------------------------
15  * Route Definitions
16  * --------------------------------------------------------------------
17  */
18 
19 // We get a performance increase by specifying the default
20 // route since we don't have to scan directories.
21 $routes->get('/', 'Home::index');    // 设置访问网站根目录时通过Home控制器的index方法响应

 

我们可以看到上面代码通过2种方式定义了默认页面

1. 定义默认控制器为Home,默认方法为index

2. 定义路由匹配 “/” 时通过控制器Home的index方法响应

 

思考一下,如果以上两种方法定义的不一致,哪个优先级更高呢?我们来修改一下代码

 1 /**
 2  * --------------------------------------------------------------------
 3  * Router Setup
 4  * --------------------------------------------------------------------
 5  */
 6 $routes->setDefaultNamespace('App\Controllers');
 7 $routes->setDefaultController('Home');
 8 $routes->setDefaultMethod('index');
 9 $routes->setTranslateURIDashes(false);
10 $routes->set404Override();
11 $routes->setAutoRoute(true);
12 
13 /**
14  * --------------------------------------------------------------------
15  * Route Definitions
16  * --------------------------------------------------------------------
17  */
18 
19 // We get a performance increase by specifying the default
20 // route since we don't have to scan directories.
21 $routes->get('/', function () {
22     echo '第一个页面';
23 });

 

刷新页面,发现输出 “第一个页面”,证明定义路由的优先级更高。

 

我们再来看一下Home控制器(app\Controllers\Home.php)

 1 php
 2 
 3 namespace App\Controllers;
 4 
 5 class Home extends BaseController
 6 {
 7     public function index()
 8     {
 9         return view('welcome_message');
10     }
11 }

 

里面只有一个index方法,返回了一个视图模板welcome_message,我们再来添加一个方法

 1 php
 2 
 3 namespace App\Controllers;
 4 
 5 class Home extends BaseController
 6 {
 7     public function index()
 8     {
 9         return view('welcome_message');
10     }
11 
12     public function welcome()
13     {
14         echo 'welcome to codeigniter 4!';
15     }
16 }

 

我们来访问一下 /home/welcome, 看下页面效果

CI4框架应用四 - 第一个页面_第1张图片

 

 

我们再添加一条路由规则

 1 /**
 2  * --------------------------------------------------------------------
 3  * Route Definitions
 4  * --------------------------------------------------------------------
 5  */
 6 
 7 // We get a performance increase by specifying the default
 8 // route since we don't have to scan directories.
 9 $routes->get('/', function () {
10     echo '第一个页面';
11 });
12 $routes->get('/welcome.html', 'Home::welcome');

 

我们再访问一下 /welcome.html, 可以看到一样的页面内容, 一不小心实现了页面静态化呢!

CI4框架应用四 - 第一个页面_第2张图片

 

你可能感兴趣的:(CI4框架应用四 - 第一个页面)