批改状态:合格
老师批语:自动 加载的原理并不复杂, 关键是了解前提
include require require_once )
// 1、传统方式:( `include` `require` `require_once` )// ①加载类文件require_once 'app\controller\User.php';require_once 'app\controller\Index.php';// ②注册类别名[可选]use app\controller\User;use app\controller\Index;// ③调用类成员echo User::show();echo '<br>';echo Index::show();
spl_autoload_register()
// 2、注册自动加载函数 `spl_autoload_register()`// ①加载类文件spl_autoload_register(function($class){// 获取类的路径名称// DIRECTORY_SEPARATOR 可以随操作系统不同,使用不同的目录分隔符$path = str_replace('\\', DIRECTORY_SEPARATOR, $class);// 生成一个完整的类文件名$classFile = __DIR__ . '/' . $path . '.php';// 加载类文件require $classFile;});// ②注册类别名[可选]use app\controller\User;use app\controller\Index;// ③调用类成员echo User::show();echo '<br>';echo Index::show();
files文件方式)
# composer.json{"autoload": {"files": ["app/controller/User.php","app/controller/Index.php"]}}得到composer支持文件:autoload.php 及相关配置文件// 3、composer中的自动加载(`files`方式)// ①加载类文件(引用composer自动加载文件)require_once __DIR__ . '/vendor/autoload.php';// ②注册类别名[可选]use app\controller\User;use app\controller\Index;// ③调用类成员echo User::show();echo '<br>';echo Index::show();
classmap类映射方式)
//第1步:创建composer.json文件# composer.json{"autoload": {"classmap": ["app/controller"]}}//第2步:打开vscode终端,输入安装命令//composer install// 3、composer中的自动加载(`files`方式)// ①加载类文件(引用composer自动加载文件)require_once __DIR__ . '/vendor/autoload.php';// ②注册类别名[可选]use app\controller\User;use app\controller\Index;// ③调用类成员echo User::show();echo '<br>';echo Index::show();
// composer中的自动加载(`files`方式)// ①加载类文件(引用composer自动加载文件)require_once __DIR__ . '/vendor/autoload.php';// ②注册类别名[可选]use app\controller\User;use app\controller\Index;// ③调用类成员echo User::show();echo '<br>';echo Index::show();
include require require_once方式逐个调用,非常繁琐;spl_autoload_register()使用非常方便,如果不想使用composer管理,推荐使用该方式;files 、classmap 、psr-4 方式,推荐使用psr-4 方式。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号