博客列表 >第十期PSR-4编程规范自动加载器、composer安装学习(2020-02-13)

第十期PSR-4编程规范自动加载器、composer安装学习(2020-02-13)

齐齐
齐齐原创
2020年02月19日 15:03:26604浏览

PSR-4自动加载器

spl_autoload_register注册加载器

  1. namespace chapter4;
  2. spl_autoload_register(function ($class){
  3. //设置项目前缀
  4. $prefix='App\edu\\';
  5. //设置具有项目前缀类名所对应类的基目录
  6. //App\edu\home\User==>
  7. //App\edu\==>src/home
  8. $base_dir=__DIR__.'\src\\';
  9. //去掉项目前缀,获取一个真实的类名称
  10. $real_dir=substr($class,strlen($prefix));
  11. // die($real_dir);
  12. $path=str_replace('\\',DIRECTORY_SEPARATOR,$real_dir);
  13. //加上基目录和php后缀
  14. $file=$base_dir.$path.'.php';
  15. // die($file);
  16. //查看文件是否存在
  17. var_dump(file_exists($file));
  18. file_exists($file) ? require $file:die('加载失败');
  19. });

载入的脚本: src/home下的User.php

  1. namespace scr\home;
  2. class User
  3. {
  4. public static function test():string
  5. {
  6. return __METHOD__;
  7. }
  8. }
  9. //echo User::class;die();
  10. die(User::test());

实现脚本自动加载

  1. namespace chapter4;
  2. use App\edu\home\User;
  3. require 'demo2.php';
  4. //echo DIRECTORY_SEPARATOR;
  5. echo '<br>';
  6. User::abc();

运行结果

学习总结

1.自动加载实现按需加载,替代了require的直接载入造成的代码冗余。在没有找的情况下,自动触发加载。

2.composer在window的系统下,安装比较傻瓜式,直接下一步就可以。了解会使用了后,突然发现那么简单。

3.看往往比不上动手做,自动加载和composer首次接触,对很多知识点不是很清晰,还需要多接触才能了解的更加透彻。总想多了解一点去研究,耽搁了学习的进程,也不知道是好事情还是坏事?

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议