自动加载器
代码
···php
<?php
namespace chapter6;
spl_autoload_register(function ($class) {
// 设置项目前缀
$prefix = ‘App\edu\‘;
// 设置具有项目前缀的类名所对应的类的基目录
$base_dir = __DIR__ . '/src/';
// 去掉项目前缀,获取真实的类名称
$real_class = substr($class, strlen($prefix));
// die($real_class);
// 将命名空间分隔符,替换成目录分隔符
$path = str_replace(DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, $real_class);
// 加上基目录和php的后缀'.php'
$file = $base_dir . $path . '.php';
// die($file);
// 查看文件是否存在
var_dump(file_exists($file));
file_exists($file) ? require $file : die('文件不存在');
});
```php
<?php
namespace src\home;
class User
{
public static function test(): string
{
return __CLASS__;
}
}
// echo User::class;die;
die(User::test());
composer和下载组件使用
<?php
namespace chapter6;
use App\edu\home\User;
require 'demo2.php';
User::abc();
<?php
namespace chapter6;
// 验证码
// PSR-4的自动加载器
require __DIR__ . '/vendor/autoload.php';
//导入验证码组件,空间别名
use Gregwar\Captcha\CaptchaBuilder;
// 实例化验证码类
$builder = new CaptchaBuilder;
// 生成验证码
$builder->build();
//生成内联验证码 ,可以放在内联标签:base64
$captcha = $builder->inline();
echo '<img src="'.$captcha.'" onclick="location.reload()">';