博主信息
博文 40
粉丝 0
评论 1
访问量 50038
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP 类的5种加载方式
Dong.
原创
1771人浏览过

一、 传统方式( include require require_once

  1. // 1、传统方式:( `include` `require` `require_once` )
  2. // ①加载类文件
  3. require_once 'app\controller\User.php';
  4. require_once 'app\controller\Index.php';
  5. // ②注册类别名[可选]
  6. use app\controller\User;
  7. use app\controller\Index;
  8. // ③调用类成员
  9. echo User::show();
  10. echo '<br>';
  11. echo Index::show();

二、 注册自动加载函数 spl_autoload_register()

  1. // 2、注册自动加载函数 `spl_autoload_register()`
  2. // ①加载类文件
  3. spl_autoload_register(function($class){
  4. // 获取类的路径名称
  5. // DIRECTORY_SEPARATOR 可以随操作系统不同,使用不同的目录分隔符
  6. $path = str_replace('\\', DIRECTORY_SEPARATOR, $class);
  7. // 生成一个完整的类文件名
  8. $classFile = __DIR__ . '/' . $path . '.php';
  9. // 加载类文件
  10. require $classFile;
  11. });
  12. // ②注册类别名[可选]
  13. use app\controller\User;
  14. use app\controller\Index;
  15. // ③调用类成员
  16. echo User::show();
  17. echo '<br>';
  18. echo Index::show();

三、 composer中的自动加载(files文件方式)

  1. # composer.json
  2. {
  3. "autoload": {
  4. "files": [
  5. "app/controller/User.php",
  6. "app/controller/Index.php"
  7. ]
  8. }
  9. }
  10. 得到composer支持文件:autoload.php 及相关配置文件
  11. // 3、composer中的自动加载(`files`方式)
  12. // ①加载类文件(引用composer自动加载文件)
  13. require_once __DIR__ . '/vendor/autoload.php';
  14. // ②注册类别名[可选]
  15. use app\controller\User;
  16. use app\controller\Index;
  17. // ③调用类成员
  18. echo User::show();
  19. echo '<br>';
  20. echo Index::show();

四、 composer中的自动加载(classmap类映射方式)

  1. //第1步:创建composer.json文件
  2. # composer.json
  3. {
  4. "autoload": {
  5. "classmap": [
  6. "app/controller"
  7. ]
  8. }
  9. }
  10. //第2步:打开vscode终端,输入安装命令
  11. //composer install
  12. // 3、composer中的自动加载(`files`方式)
  13. // ①加载类文件(引用composer自动加载文件)
  14. require_once __DIR__ . '/vendor/autoload.php';
  15. // ②注册类别名[可选]
  16. use app\controller\User;
  17. use app\controller\Index;
  18. // ③调用类成员
  19. echo User::show();
  20. echo '<br>';
  21. echo Index::show();

五、 composer中的自动加载(psr-4类映射方式)

  1. // composer中的自动加载(`files`方式)
  2. // ①加载类文件(引用composer自动加载文件)
  3. require_once __DIR__ . '/vendor/autoload.php';
  4. // ②注册类别名[可选]
  5. use app\controller\User;
  6. use app\controller\Index;
  7. // ③调用类成员
  8. echo User::show();
  9. echo '<br>';
  10. echo Index::show();

总结:

  • 传统方式使用include require require_once方式逐个调用,非常繁琐;
  • 注册自动加载函数 spl_autoload_register()使用非常方便,如果不想使用composer管理,推荐使用该方式;
  • composer三种方式:filesclassmappsr-4 方式,推荐使用psr-4 方式。
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:自动 加载的原理并不复杂, 关键是了解前提
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学