TP5类的自动加载

学会了作用就是:可以在框架中任意地方创建类,并调用

类的自动加载代码原理这里就说不清了,我兴趣的可以看看慕课网singwa老师的课:

https://coding.imooc.com/class/331.html

下面直接介绍如何使用:

类的加载文件路径:项目根目录\thinkphp\library\think\Loader.php

流程:index.php(入口文件)-》base.php-》Loader.php

1.如果关系到命名空间调用一个类:

在Loader.php文件中的register()方法里对应的地方加入这个类的"首目录"

        $rootPath = self::getRootPath();//获取根目录// 注册命名空间定义(键是命名空间,键值是命名空间路径)self::addNamespace(['think'  => __DIR__,'traits' => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'traits','script' => $rootPath.'script',]);

这里引入了根目录下的"script"目录,那么则可调用"script"目录里的类或"script"目录里的文件夹下的类

2.如果不关系到命名空间,只关系到目录调用一个类:

这种方法也适用于需要命名空间的,调用一个类的情况

在Loader.php文件中的register()方法里对应的地方加入这个类的"首目录"

        // 自动加载extend目录(命名空间不需再加这个目录,直接下面的文件夹开头则行,必须是文件夹下类)self::addAutoLoadDir($rootPath . 'extend');self::addAutoLoadDir($rootPath . 'script');self::addAutoLoadDir($rootPath.'thinkphp'.DIRECTORY_SEPARATOR.'library'.DIRECTORY_SEPARATOR.'ali');//这样不行self::addAutoLoadDir($rootPath.'thinkphp'.DIRECTORY_SEPARATOR.'library');//这样才行

这里引入了根目录下的"script"目录,那么则可以调用里面的类,也可以用命名调用

3.关于类的调用,可看看:

https://blog.csdn.net/qq_41912505/article/details/99638955

TP5.1类的自动加载相关推荐

  1. 分析ThinkPHP5的源码(1) : 类的自动加载

    前文 Composer 下载ThinkPHP5.1的源码,每个框架它都必须都有一个"类的自动加载"机制 ,我们都知道PHP引入文件是需要require . include 才能使用 ...

  2. composer php中如何执行,php中composer如何实现类的自动加载(示例讲解)

    本篇文章给大家带来的内容是关于php中composer如何实现类的自动加载(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们在开发项目中会经常用到第三方的类库插件,但是 ...

  3. Final关键字和类的自动加载

    Final关键字: 父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承. 一般是为了防止父类的一个方法被重写.只能用来定义类和定义方法, 不能使用fi ...

  4. php 类自动执行,php类中的魔术方法及类的自动加载

    类的模式方法都是 public 的,以 两个下划线开头,在某些情况下自动被调用,有点类似 hook 或者 事件触发. 魔术方法的传参方式不能使用引用. __construct() : 构造函数,实例化 ...

  5. php自动加载指定类,PHP自动加载类-Java架构师必看

    test.php 当前目录下有j.phpPHP test.php function __autoload($class_name) { require_once $class_name . '.php ...

  6. php自动载入类文件函数,我可以在没有PHP的类中自动加载函数文件吗?

    说实话,我认为你不能以一种直截了当的方式.无论如何,使用实用程序类不是更好吗? OOP没什么,看看这个: class HTMLUtil { public static function filter( ...

  7. 如何实现一个php框架系列文章【2】实现类的自动加载

    根据前一篇文章的设计原则,我们暂时把php文件分为3类,类名和文件名都遵守如下约定.   类名 文件名 路径 模型类m {$app}Mod  {$app}.mod.php {$app}/model   ...

  8. 大话PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置...

    一.类自动载入 SPL函数 (standard php librarys) 类自动载入,尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_registe ...

  9. Zend Framework 自动加载类的实现方法

    Zend Framework中实现自动加载类.网上查了很多,有好几种.本文收集了常用的3种, 第一种如下: 方法很简单,举例说明.比如想要在models目录下的类可以自动加载. 先在index.php ...

最新文章

  1. CountDownTimer的简单使用
  2. Swift进阶_第一部分
  3. fuzz系列之libfuzzer
  4. 在caffe上跑自己的数据
  5. 我们又双叒搬家了!(附福利)
  6. Web前端技术知识:为什么要进行网站重构呢?
  7. win10无法检测java_Javac 在windows10系统不识别
  8. OpenCV——人脸检测
  9. 微课|Python程序设计开发宝典(5.2.2):默认值参数
  10. 4款基于Django框架的开源软件推荐
  11. 简单易用的安装文件制作工具NSIS的使用demo示例
  12. 分布式系统设计时,遵循CAP原则
  13. WPF:新手入门教程
  14. iOS内购-防越狱破解刷单
  15. python opencv 入门 绘图函数 (3)
  16. 网上流行的护眼背景对照码,十六进制,RGB值
  17. fofa第一个查找漏洞
  18. 暑期ACM模拟赛--2017ACM/ICPC亚洲区沈阳站-重现赛 【待补】
  19. 英语情景对话计算机的优缺点,英语口语考试情景对话互联网的利与弊
  20. 去除stackoverflow页面上关不掉的cookie弹窗

热门文章

  1. SQL基础操作_2_操作多个表
  2. caffe编译报错 cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDe
  3. 对cv::findHomography未定义的引用的解决方法
  4. Apache Jserv protocol
  5. MVC之ActionFilterAttribute自定义属性
  6. NullPointerException
  7. 快速生成NHibernate的映射文件和映射类的利器 —— codesmith软件
  8. shell变成中的测试语句
  9. 虚拟化是云计算的第一步
  10. web开发语言大盘点