2.5 composer

composer

Composer的作用不仅仅是安装一个框架,它能实现类的自动加载、项目依赖管理,以及创建自己的包,虽然php提供了自动加载机制,但是自动加载功能需要手动设置才能实现,操作相对复杂,so可以使用composer来解放生产力。

在mytp.test网站根目录下,创建composer.json文件
composer.json

{
	"autoload":{
		"psr-4":{"app\\": "application/"}
	}
}

上述代码中,autoload表示使用自动加载,psr-4表示自动加载的类文件要遵循psr-4规范的要求,"app\"表示app命名空间,“application/”:表示application目录
执行composer install 命令即会在网站根目录下生成vender目录。
在这里插入图片描述

composer提供了vendor/autoload.php文件,在项目中直接引入它就可以实现自动加载。如果修改了composer.json文件,即可使用composer update命令更新。

mytp.test网站下文件修改

  • public\index.php
<?php
require '../vendor/autoload.php'; //引入composer生成自动加载类的机制

$pathinfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : $_SERVER['REDIRECT_URL'];

$route = [
	'student' => 'student/student/index',
     'index' => 'index/index/index',
]
$pathinfo = trim($pathinfo,'/');
if(isset($route[$pathinfo]))
{
	$pathinfo = $route[$pathinfo];
}

$arr = explode('/',$pathinfo);

if(!isset($arr[2]))
{
	exit("请求信息有误");
}
list($module,$controller,$action) = $arr;
define(MODULE_PATH,'../application/'.$module.'/');
$controller_name = '\\app\\'.$module.'\\controller\\'.ucwords($controller);
$controller_path = MODULE_PATH.'controller/'.$controller_name.'.php';

$obj = new $controller_name();
$obj->student();

StudentController.php改为Student.php

<?php
namespace app\student\controller;

use app\student\model\Student as StudentModel;

class Student
{
	
	public function index()
	{   //调用模型和视图
		//require MODULE_PATH.'model/StudentModel.php';  //修改模型路径
		$model = new StudentModel();
		$data = $model->getAll();
		require MODULE_PATH.'view/student.html';       //修改视图路径
	}
}



StudentModel.php改为Student.php

<?php
namespace app\student\model;

use MySQLi;

class Student
{
	protected $link;

	public function __construct()
	{
		$this->link = new Mysqli('localhost','root','root','mytp');
		$this->link->set_charset('utf8');
	}

	public function getAll()
	{
		$sql = 'Select * from `student`';
		$res = $this->link->query($sql);
		return $res->fetch_all(MYSQLI_ASSOC);
	}
}

结果如下图所示:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值