搜索
博主信息
博文 63
粉丝 8
评论 8
访问量 63736
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP大牛成长之路:类的5中加载方式
周Sir-BLOG
原创
763人浏览过

文件目录如下:
IndexUser 两个类方法相同,均输出“PHP中文网欢迎您!方法是:xxx”

  1. namespace app\controller;
  2. use model\Users;
  3. class User
  4. {
  5. public static function show()
  6. {
  7. return 'PHP中文网欢迎您!方法是:'. self::getMethod();
  8. }
  9. public static function getMethod()
  10. {
  11. return __METHOD__;
  12. }
  13. }

加载方式1:传统方式:( 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();

加载方式2:注册自动加载函数 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();

加载方式3:composer中的自动加载(files文件方式)

  • 第1步:创建composer.json文件
  1. # composer.json
  2. {
  3. "autoload": {
  4. "files": [
  5. "app/controller/User.php",
  6. "app/controller/Index.php"
  7. ]
  8. }
  9. }
  • 第2步:打开vscode终端,输入安装命令

composer install

得到composer支持文件:autoload.php 及相关配置文件

  • 第3步:引用composer自动加载文件并显示
  1. // 3、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();

注意:当composer.json文件有更新, 需在终端执行命令: composer dumpautoload 命令, 使files字段生效。

加载方式4:composer中的自动加载(classmap类映射方式)

  • 第1步:创建composer.json文件
  1. # composer.json
  2. {
  3. "autoload": {
  4. "classmap": [
  5. "app/controller"
  6. ]
  7. }
  8. }
  • 第2步:打开vscode终端,输入安装命令

composer install

得到composer支持文件:autoload.php 及相关配置文件

  • 第3步:引用composer自动加载文件并显示
  1. // 3、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();

注意:当composer.json文件有更新, 需在终端执行命令: composer dumpautoload 命令, 使files字段生效。

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

  • 第1步:创建composer.json文件
  1. # composer.json
  2. {
  3. "autoload": {
  4. "psr-4": {
  5. "app\\controller\\": "app/controller"
  6. }
  7. }
  8. }
  • 第2步:打开vscode终端,输入安装命令

composer install

得到composer支持文件:autoload.php 及相关配置文件

  • 第3步:引用composer自动加载文件并显示
  1. // 3、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();

注意:当composer.json文件有更新, 需在终端执行命令: composer dumpautoload 命令, 使files字段生效。

以上5种加载方式均输出同样结果:

总结:

从以上类的5种加载方式可以看出,使用composer自动加载更方便(推荐:psr-4方式)

  • 传统方式使用include require require_once方式逐个调用,非常繁琐;

  • 注册自动加载函数 spl_autoload_register()使用非常方便,如果不想使用composer管理,推荐使用该方式;

  • composer三种方式:filesclassmappsr-4 方式,推荐使用psr-4 方式。

批改老师:天蓬老师天蓬老师

批改状态:合格

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

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

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