Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:坚持学习好
自动加载器遵循PSR-4标准,代码在运行时,实现查找PHP类、接口、Trait文件
,并自动加载到当前脚本。但自动加载文件路径需与该文件中的代码的命名空间一一对应。
加载器代码(autoloading.php):
<?php
namespace autoloading;
//注册加载器
spl_autoload_register(function($class){
//设置项目的前缀
$prefix = "autoloading\\";
//设置具有项目前缀的类名的所对应的基目录
$base_dir = __DIR__."\\";
//去掉项目名称获取真实的类名称
$real_name = substr($class,strlen($prefix));
//将命名空间分隔符替换成当前系统目录分隔符
$path = str_replace("\\",DIRECTORY_SEPARATOR,$real_name);
//加上基目录以及PHP后缀
$file = $base_dir . $path . ".php";
//判断文件是否存在并进行文件加载
if(file_exists($file)){
require $file;
}else{
die("文件加载失败");
}
});
被加载文件代码(createUser.php):
<?php
namespace autoloading;
class CreateUser
{
//生成随机数量的用户数据
public static function create($num)
{
for($i = 0 ; $i < $num ; $i++){
$user=[
'name' => chr(mt_rand(97,122)),
'age' => $i
];
yield $i=>$user; //通过生成器逐条生成数据
}
return $user;
}
}
使用加载器文件代码(test.php):
<?php
namespace autoloading;
use autoloading\CreateUser;
require "autoloading.php";//引入自动加载器文件
foreach (CreateUser::create(500) as $k => $v) {
echo "<pre>" . print_r($v , true) . "</pre>";
}
运行结果:
Composer,包(组件)依赖管理器,可以下载由第三方开发者编写的组件到项目中进行使用,下载的组件在vendor目录
下
Windows下载安装Composer
打开网址:https://getcomposer.org/Composer-Setup.exe
,下载Composer,下载完成后打开文件,一直点击为下一步完成安装
查找下载组件
打开网址:https://packagist.org/
,这个网站提供全世界开发者编写的组件,本次使用到的是验证码组件,在搜索框输入chaptcha
,找到gregwar/captcha
,点击进入对应页面
找到项目的目录位置,在地址栏输入cmd
,回车打开终端,在命令行中输入composer require gregwar/captcha
,即可下载成功对应的组件
示例:
<?php
namespace composerTest;
use Gregwar\Captcha\CaptchaBuilder;
//引入自动加载器
require __DIR__ . '\vendor\autoload.php';
//实例化验证码类`
$builder = new CaptchaBuilder;
//生成验证码
$builder->build();
//生成内联验证码,放在内联标签:base64
echo '<img src="' . $builder->inline() . '" onclick="location.reload()">';
运行结果: