Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:总结的不错, 一定要记住并常用
文件目录如下:
Index
与User
两个类方法相同,均输出“PHP中文网欢迎您!方法是:xxx”
namespace app\controller;
use model\Users;
class User
{
public static function show()
{
return 'PHP中文网欢迎您!方法是:'. self::getMethod();
}
public static function getMethod()
{
return __METHOD__;
}
}
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 install
得到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();
注意:当composer.json文件有更新, 需在终端执行命令:
composer dumpautoload
命令, 使files字段生效。
classmap
类映射方式)
# composer.json
{
"autoload": {
"classmap": [
"app/controller"
]
}
}
composer install
得到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();
注意:当composer.json文件有更新, 需在终端执行命令:
composer dumpautoload
命令, 使files字段生效。
psr-4
类映射方式)
# composer.json
{
"autoload": {
"psr-4": {
"app\\controller\\": "app/controller"
}
}
}
composer install
得到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();
注意:当composer.json文件有更新, 需在终端执行命令:
composer dumpautoload
命令, 使files字段生效。
以上5种加载方式均输出同样结果:
从以上类的5种加载方式可以看出,使用composer自动加载更方便(推荐:psr-4方式)
传统方式使用include
require
require_once
方式逐个调用,非常繁琐;
注册自动加载函数 spl_autoload_register()
使用非常方便,如果不想使用composer管理,推荐使用该方式;
composer三种方式:files
、classmap
、psr-4
方式,推荐使用psr-4
方式。