TP5.1类的自动加载
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类的自动加载相关推荐
- 分析ThinkPHP5的源码(1) : 类的自动加载
前文 Composer 下载ThinkPHP5.1的源码,每个框架它都必须都有一个"类的自动加载"机制 ,我们都知道PHP引入文件是需要require . include 才能使用 ...
- composer php中如何执行,php中composer如何实现类的自动加载(示例讲解)
本篇文章给大家带来的内容是关于php中composer如何实现类的自动加载(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们在开发项目中会经常用到第三方的类库插件,但是 ...
- Final关键字和类的自动加载
Final关键字: 父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承. 一般是为了防止父类的一个方法被重写.只能用来定义类和定义方法, 不能使用fi ...
- php 类自动执行,php类中的魔术方法及类的自动加载
类的模式方法都是 public 的,以 两个下划线开头,在某些情况下自动被调用,有点类似 hook 或者 事件触发. 魔术方法的传参方式不能使用引用. __construct() : 构造函数,实例化 ...
- php自动加载指定类,PHP自动加载类-Java架构师必看
test.php 当前目录下有j.phpPHP test.php function __autoload($class_name) { require_once $class_name . '.php ...
- php自动载入类文件函数,我可以在没有PHP的类中自动加载函数文件吗?
说实话,我认为你不能以一种直截了当的方式.无论如何,使用实用程序类不是更好吗? OOP没什么,看看这个: class HTMLUtil { public static function filter( ...
- 如何实现一个php框架系列文章【2】实现类的自动加载
根据前一篇文章的设计原则,我们暂时把php文件分为3类,类名和文件名都遵守如下约定. 类名 文件名 路径 模型类m {$app}Mod {$app}.mod.php {$app}/model ...
- 大话PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置...
一.类自动载入 SPL函数 (standard php librarys) 类自动载入,尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_registe ...
- Zend Framework 自动加载类的实现方法
Zend Framework中实现自动加载类.网上查了很多,有好几种.本文收集了常用的3种, 第一种如下: 方法很简单,举例说明.比如想要在models目录下的类可以自动加载. 先在index.php ...
最新文章
- CountDownTimer的简单使用
- Swift进阶_第一部分
- fuzz系列之libfuzzer
- 在caffe上跑自己的数据
- 我们又双叒搬家了!(附福利)
- Web前端技术知识:为什么要进行网站重构呢?
- win10无法检测java_Javac 在windows10系统不识别
- OpenCV——人脸检测
- 微课|Python程序设计开发宝典(5.2.2):默认值参数
- 4款基于Django框架的开源软件推荐
- 简单易用的安装文件制作工具NSIS的使用demo示例
- 分布式系统设计时,遵循CAP原则
- WPF:新手入门教程
- iOS内购-防越狱破解刷单
- python opencv 入门 绘图函数 (3)
- 网上流行的护眼背景对照码,十六进制,RGB值
- fofa第一个查找漏洞
- 暑期ACM模拟赛--2017ACM/ICPC亚洲区沈阳站-重现赛 【待补】
- 英语情景对话计算机的优缺点,英语口语考试情景对话互联网的利与弊
- 去除stackoverflow页面上关不掉的cookie弹窗
热门文章
- SQL基础操作_2_操作多个表
- caffe编译报错 cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDe
- 对cv::findHomography未定义的引用的解决方法
- Apache Jserv protocol
- MVC之ActionFilterAttribute自定义属性
- NullPointerException
- 快速生成NHibernate的映射文件和映射类的利器 —— codesmith软件
- shell变成中的测试语句
- 虚拟化是云计算的第一步
- web开发语言大盘点