我们设计一个业务系统时,往往希望前端的用户界面和后端的业务逻辑之间不要有太大的关联(松散耦合),即,修改前端页面时,不必考虑后端业务逻辑是如何实现的,同样的,升级后端业务逻辑时,也无需考虑前端界面是否会收到影响。因此,很多时候我们需要在前端和后端之间,通过一种方式来进行通信(或信息交换),而不是把业务逻辑代码直接写入前端界面实现中。
(事实上,读者可以将前端html页面代码和php代码写到一起,将文件后缀命名为.php,这样通过本文前面配置的环境是可以运行的,但这样的设计,对于后期代码的维护,无疑是不利的)
我们将业务逻辑和前端页面之间的这种通信方式,称之为接口。本小节我们主要谈一谈本文在处理前端通信时的实现方式。
我们需要在服务器中建立接口文件(front.interface.php),这个接口文件中,主要接收前端发来的信息(往往是一些参数),我们需要根据这些参数来调用相应的函数,完成相关操作,如前端需要,我们还必须返回数据。
接口中,我们使用$_REQUEST[]来接受前端发送的参数(注:在前端发送数据参数时有get和post两种方式,一般配置php.ini时,这两种方式发送的数据都会存放于$_REQUEST[]中,当然,为了明确传送方式,读者最后使用$_GET[]或$_POST[]来明确获取的是哪种传输方式发送的数据,这里为了方便,统一使用了$_REQUEST[]。而有关于get和post两种方式的区别,读者可以参考有关材料,一般get被认为是从服务器获取数据,参数携带信息量较少,目的是希望获得服务器返回信息;而post是向服务器提交信息,参数携带信息量较大,一般希望服务器完成某种动作)
例如,通过
$op = $_REQUEST['op'] ? $_REQUEST['op'] : 'doTeaching';
这种方式获取前端发送的op参数的值(这里,我们定义op为操作符,目的是告诉服务器需要进行何种操作)
我们根据该操作符,进行相应的操作,这里我们只对“doTeaching”(也就是教师领取教学任务的前端指令进行实现)
if ($op == 'doTeaching') {
// 教师领取教学任务
$t_id = $_REQUEST['t_id'];
$c_id = $_REQUEST['c_id'];
// 通过frontAction类执行教师领取教学任务操作
$front->Teaching($t_id,$c_id);
// 通过frontAction类查询没有教师领取的教学任务
// 以便教师能够继续选课
$course_list = $front->LoadCourse(2);
// 以json的形式返回查询结果,以便前端显示
echo json_encode($course_list);
}
其中,$front是实例化的frontAction(实例化,就是用类定义一个新的变量,以便后面可以通过这个变量来使用类定义的各种方法),其定义为:
// 初始化frontAction
// 此处为了便于理解,将数据库连接时需要的参数设置为明文
// 处于安全考虑,实际操作时,不要这样做
$front = new frontAction(
'localhost:3306', // 主机名
'root', // mysql用户名
'123456', // mysql密码
'db_edu_sys' // 数据库名
);
本节小结:本章主要是通过一个例子来讲述PHP语言的基本语法,这里我们对本节涉及到的PHP语法再做一下说明,防止读者只关注实现例子本身(其实那并不是本节要讲述的重点)。
(1)类,如何定义一个类,类的属性和方法,类的继承。类的实例化。
(2)变量(属性),变量的定义和使用,PHP中变量类型的转化。
(3)函数(方法),函数的定义方式、命名、参数、返回值。
(4)数据库连接、切换(使用)数据库。
(5)SQL语句的执行,存储过程的调用。
(6)程序控制关键字,if(判断,分支语句)、for(循环语句)、while(循环语句)等。
掌握上述基础知识,本节的学习目的就达到了,也为我们进行下步学习打下良好的基础!
PHP语法学习参考网站: