天天看点

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

下载解压 ThinkPHP 3.2.3,在默认的应用 Application(./Application) 中,包含一个默认的模块 Home(./Application/Home)。

需要在该默认应用中创建一个用于后台管理的 Admin 模块,可以通过在应用入口文件(./index.php)中绑定 Admin 模块来 自动生成 Admin 模块:

此时访问 http://serverName/index.php 便会自动在 ./Application 下创建 Admin 目录(要记得把上面的定义 删掉,否则通过入口文件访问网站首页就会默认访问 Admin 模块)。

不需要修改入口文件。

此时访问 http://serverName/index.php/Admin 就可以访问后台的 Index 控制器的 index 方法了。

目录结构如下:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

应用配置(公共配置文件)位于 ./Application/Common/Conf/config.php ,在 ThinkPHP 调用所有的模块之前加载。

在这里没有做特别的配置,只开启了 Trace 追踪信息:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

Admin 模块的模块配置位于 ./Application/Admin/Common/Conf/config.php

该项目开启的配置包括:

① 数据库

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

②  配置后台公共文件

由于该项目同时包含 Home、Admin  模块,所以公共文件必须分开,因此可以把 Admin 模块的公共文件放在 ./Application/Public/Admin 下,在 Admin 的模块配置文件中配置:

③ 定义异常页面

异常页面 error.html 中错误信息可以用 $e['message'] 表示

如果需要有倒计时跳转的功能,可以参考 ./ThinkPHP/Tpl/dispatch_jump.tpl 文件

error.html:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

例如访问了不存在的方法,页面会输出:

 然后跳转回后台主页。

注:该页面中不能使用 ThinkPHP 的标签,只能使用原生的 PHP 语句。

用于登陆的文件是 Admin 模块下的 LoginController.class.php

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

几点说明:

① IS_POST

位于 ./ThinkPHP/Library/Think/App.class.php(ThinkPHP 应用程序类 执行应用程序管理) 的 static public function init() 方法(应用程序初始化)内

定义当前请求的系统常量,源码:

② e 方法

位于 ThinkPHP/Common/functions.php (Think 系统函数库)

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

③ 模板路径

默认情况下,Admin 模块 Login 控制器的 index 方法对应的模板文件应该是 ./Application/Admin/View/Login/index.html

如果不希望目录层级太多的话,可以将该方法对应的模板文件设置为 ./Application/Admin/View/Login_index.html,减少了一层目录,在 Admin 模块的模块配置 config.php 中添加:

登陆以后进入后台首页 http://serverName/Admin/Index/index

Admin 模块的 Index 控制器 ./Application/Admin/Controller/IndexController.class.php:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

注:要进入后台首页,必须经过登陆,因此在加载该控制器之前应该先检查用户是否登陆,检查的方法可以写在 Admin 模块的 Common 控制器中,然后 Index 控制器继承 Common 控制。Common 控制器位于 ./Application/Admin/Controller/CommonController.class.php:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

注:在 ./ThinkPHP/Library/Think/Controller.class.php (ThinkPHP 控制器基类)定义了

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

登陆模块的视图文件位于 ./Application/Admin/View/Login_index.html:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

注:

① U 方法

在控制器使用 U 方法的格式是 U(模块/控制器/方法, array('参数1'=>'参数1的值','参数2'=>'参数2的值', '伪静态后缀'))

在模板中使用 U 方法的格式是 {:U(模块/控制器/方法, array('参数1'=>'参数1的值','参数2'=>'参数2的值', '伪静态后缀'))}

② 伪静态后缀

可以在模块配置文件 config.php 中配置伪静态后缀,默认为 .html,即 URL 可能是 http://serverName/Admin/Index/index.html。可以设置为空,即 URL 可能为 http://serverName/Admin/Index/index

Admin 模块的文件目录:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

crm_user 表:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

① 把 Session 存储在 MySQL 数据库中

ThinkPHP 3.2.3 自带了 Db 类型的 Session 驱动,Db 类位于 ./ThinkPHP/Library/Think/Session/Driver/Db.class.php

框架已经准备好了 session 表:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

修改模块配置 ./Application/Admin/Common/Conf/config.php,增加以下配置即可:

② 把 Session 存储在 Redeis 中

ThinkPHP 3.2.3 自带了 Memcache  驱动,可以参考该驱动来开发 Redis 驱动,新建 Redis.class.php,放在 ./ThinkPHP/Library/Think/Session/Driver 下:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

然后修改模块配置文件 config.php:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

文章管理的控制器 ArticleManageController.class.php:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

 注:ThinkPHP 3.2.3 的分页类位于 ./ThinkPHP/Library/Think/Page.class.php,因此除了使用 use 关键字引入命名空间为 Think 的 Page类,然后直接实例化 Page类外,还可以在需要实例化 Page 类的时候 new \Think\Page(); Think 前面的 \ 代表根命名空间。

在使用分页类的时候只需要把总条数和每页分配的条数作为参数传给 Page 类以获取 limit 参数。

文章管理的视图文件位于 ./Application/Admin/View/ArticleManage_index.html:

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理
ThinkPHP 3.2.3 简单后台模块开发(一)常用配置一、项目分组二、应用配置和模块配置三、管理员登陆 四、自定义 Session 存储 五、文章管理

注:模板中使用了点语法解析数组,点语法在模板中除了解析数组外,还可以解析对象。可以在模块配置中设置点语法只解析数组,可以使模板解析速度更快: