第十四节 代码逻辑分离

PHP零基础入门

代码逻辑分离,也叫做代码前后端分离,主要是就是让应用程序的每一个函数只负责做一件事情,我们要用控制器(controller),放置到一个叫controller.php的文件,我们把HTML显示输出的放到视图(view),包括其他文件调用视图的东西。在controller.php我们看不到视图的东西,在view我们看不到controller,除了遍历变量数组输出一些东西之外。

代码逻辑分离-简单例子

创建文件夹4.1_separating-logic_from_presentation并把session函数代码复制粘贴到该文件夹。

让我们首先演示代码逻辑分离简单例子:

第一步:index.php编写代码

第二步:把视图文件放到view文件夹

创建view文件夹,把index.view.php移到view文件夹,回到index.php修改代码:

这代码存在的问题:

每当我们在视图中有一个控制器,我们将在每个文件中执行require(‘views/index.view.php’);我们可以让它更加简单,让view函数做,然后view函数将负责标记其它所有内容并实际执行require操作:

第三步:创建functions.php文件

1、编写view函数

2、把functions.php引入到index.php

删除require(‘views/index.view.php’);因为改为使用view函数调用视图。刷新浏览器,报错信息:

因为$title不是全局变量,我们在view函数添加global $title使得view可以使用。但存在一个问题,我们多次调用view函数,每一个将要使用global是不可持续维护的,所以我们可以在view函数提供另外一个参数叫$model,$model数据将被显示,在我们的视图里面将有一个$model:

代码逻辑分离-视图部分

第一步:修改index.view.php的title成model

第二步:调用view函数传递$model参数

刷新页面,仍然显示hello ,world,代码运行正确。

代码逻辑分离-整理login表单

第一步:复制login.php的代码到index.view.php,并修改整理代码

第二步:h1这里我们用$model变量

刷新输出结果错误:

代码逻辑分离-使用layout页面

解决不要在每一个文件包含header和footer文件,引入layout页面,创建layout.view.php文件。

第一步:复制header.php到layout.view.php

第二步:内容的视图

第三步:回到view函数引入layout视图

第四步:回到layout.php引入$name.view.php

刷新,输出结果显示正常,但是title变量没有定义问题。

解决title变量没有定义问题

第一步:在index.php定义view_stuff变量,专门保存我们需要得值

第二步:functions.php让view函数可以访问到view_stuff变量

第三步:回到layout.view.php

输出显示正常了,title变量没有定义问题解决了,如果我们不给view_stuff设置任何值也不会报错了,这个我们在日后课程将要学习。

总结

这节课我们整理两部分代码分别是视图(views)和控制器(index.php)。

接近10年的互联网从业经验,精通Scrum敏捷软件开发的方法,从事互联网产品设计,开发,测试,运营,案例不少于20个,发现自己最喜欢的工作是做外贸营销,外贸SEO,特别喜欢谷歌优化。从2017年3月开始坚持在群161510483直播谷歌SEO和WEB前端开发技术,只要加进来坚持学习零基础也能够学会。

Last modified: 2019年3月30日

Previous Story

PHP零基础入门

第十五节 PHP操作文件

PHP操作文件:分为打开文件,读取文件,写入文件和关闭文件四步.为了方便学习,本节课开始引入词汇表项目,当访客查看词汇表时,能够搜索词汇,项目要求admin组成.

...

Next Story

PHP零基础入门

PHP和MySQL:插入,读取和删除数据

PHP和MySQL:学习插入,读取,删除数据库数据的SQL语句,使用mysql语句插入,读取和删除数据,我们已经知道了描述表,创建表,显示数据库,从表格中删除.

...