博客列表 >0213作业+PSR与composer+10期线上班

0213作业+PSR与composer+10期线上班

江川林
江川林原创
2020年02月21日 18:05:51691浏览

PSR

psr是PHP推荐编码规范的简称

要创建一个自动加载器要遵循以下几步
-使用__autoload()函数或spl_autload_register()函数
-创建项目前缀
-创建项目前缀所对应的文件基目录
-获取真实类名
-将真实类名的分隔符,转换成文件目录分隔符
-组成文件名
-加载文件名对应的php文件

注意:需要自动加载的文件的储存路径必须和自动加载的文件名一致,且命名空间也是;

以下是遵循PSR-4的简单的自动加载器

  1. <?php
  2. namespace chapter3;
  3. //创建自动加载器
  4. spl_autoload_register(function ($class){
  5. // 创建项目前缀
  6. $prefix = 'app\home\\';
  7. // 创建类名前缀所对应的文件基目录
  8. $base = __DIR__ . '\src\\';
  9. // var_dump($base);
  10. // 获取真实类名
  11. $real = substr($class, strlen($prefix));
  12. // var_dump($real);
  13. // 将命名空间分隔符,替换成目录分隔符
  14. $path = str_replace('\\',DIRECTORY_SEPARATOR,$real);
  15. // 获取文件名
  16. // echo '<br>';
  17. $file_name = $base . $path . '.php';
  18. // var_dump($file_name);
  19. // echo '<br>';
  20. file_exists($file_name) ? require $file_name : die('文件不存在,加载失败');
  21. });
  22. //echo DIRECTORY_SEPARATOR;

Composer实战

-安装composer
-在packagist.org中下载需要自动加载的组件

以下是用composer实现简单的验证码组件自动加载

  1. <?php
  2. namespace chapter3;
  3. //验证码
  4. //加载PSR-4的自动加载器
  5. require __DIR__ . '\vendor\autoload.php';
  6. //导入验证码组件的空间别名
  7. use Gregwar\Captcha\CaptchaBuilder;
  8. //实例化验证码类
  9. $builder = new CaptchaBuilder;
  10. //生成验证码
  11. $builder->build();
  12. //内联验证码
  13. $img = $builder->inline();
  14. //放进图片中,在页面显示
  15. echo '<img src=" ' . $img . ' " >';
上一条:0214 PHP闭包与异常下一条:HTML图像
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议