Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:开发模式没有最好的, 只是最合适的, 咱们学的是全栈开发, 本身就是前后端全打通
http://php.cn/active.php?id=1
之类的 URI,使用 GET 方式获取参数。这样的 URI 有两个缺点,一是容易被 SQL 注射攻击,二是维护性可读性差。大家可以比较www.mysite.com/active/1
哪一种更具备可读性。MVC 的单一入口机制可以解决维护难的问题,路由就是一套映射,可以让你一个 URI 对应一个方法
<?php
//这是一个员工上班打卡的控制器
class StaffsController
{
public function getStaff($time, $name)
{
return "上班打卡时间:$time,员工姓名:$name";
}
}
// http://php.edu/5.14/route.php/staffs/getstaff/time/0830/name/xiaomei
// 1. 解析URI PATHINFO
// echo $_SERVER['PATH_INFO'];
$pathinfo = (array_values(array_filter(explode('/', $_SERVER['PATH_INFO']))));
// 2. 解析出控制器
$controller = ucfirst(array_shift($pathinfo)) . 'Controller';
// echo $controller;
// 3. 解析出控制器中的方法
$action = array_shift($pathinfo);
// echo $action;
// print_r($pathinfo);
// echo count($pathinfo);
// die();
// 4.解析出参数
$cs = [];
for ($i = 0; $i < count($pathinfo); $i += 2) {
if (isset($pathinfo[$i + 1])) {
$cs[$pathinfo[$i]] = $pathinfo[$i + 1];
}
}
// print_r($cs);
// 5. 调用控制器中的方法
$staff = new StaffsController();
echo $staff->$action(...array_values($cs));
//输出:上班打卡时间:0830,员工姓名:xiaomei
composer
的安装Composer 是 PHP 的一个依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。
Composer 默认情况下不是全局安装,而是基于指定的项目的某个目录中(例如 vendor)进行安装。
Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。
Composer 可运行在 Windows 、 Linux 以及 OSX 平台上。
extension=php_openssl.dll
前面的分号去掉就可以了。composer --version
命令来查看是否安装成功:接下来我们可以更改Packagist
为国内镜像:composer config -g repo.packagist composer https://packagist.phpcomposer.com
大家可以百度
每一次调用控制器的某个方法时,函数都会把参数以关联数组的形式传入,做到“业务逻辑”和“表现”的分离,但是感觉这种分离还不是最好的,因为前端开发人员仍然需要面对甚至处理PHP代码,后端开发人员也有和前端人员沟通的成本,应该还有更好的方式。