参考文献:

1、PHP PSR-4 Autoloader 自动加载(中文版)

2、PHP编码规范(中文版)导读

3、PHP-PSR-[0-4]代码规范

基本步骤:

(1)在vendor 下新建一个项目

(2)修改composer.json

(3)使用这个命令会自动生成autoload的文件:composer dump-autoload

(4)use 该类引入既可以了

一、简单的案例:

1、新建一个类LuaRedis.php,同时使用命名空间:Openresty

  1. <?php
  2.  
  3. namespace Openresty;
  4.  
  5. class LuaRedis
  6. {
  7. public static function getView()
  8. {
  9. echo "NameSpace = ".__NAMESPACE__."<br/> ClassName = ".__CLASS__."<br/> Method = ".__METHOD__;
  10. }
  11. }

2、编辑composer.json 配置加载目录和空间名

  1. "autoload": {
  2. "psr-4": {
  3. "Openresty\\": "vendor/phplua"
  4. }
  5. },

其中"Openresty\\": "vendor/phplua"表示,将Openresty这个空间名绑定到"vendor/phplua"这个目录下

3、使用“composer dump-autoload”这个命令会自动生成autoload的文件

4、如何在项目中使用该类

  1. use Openresty\LuaRedis;
  2.  
  3. class Web
  4. {
  5. /**
  6. * PSR4 自动载入测试
  7. */
  8. public function lua(){
  9. LuaRedis::getView();
  10. }
  11. }

5、浏览器访问测试是否自动载入成功,出现以下界面表示自动加载成功

二、引入一个支付宝的SDK

1、下载SDK文件已经目录结构

2、编辑composer.json

  1. "autoload": {
  2. "psr-4": {
  3. "Openresty\\": "vendor/phplua",
  4. "AliyunMNS\\": "vendor/aliyun/AliyunMNS"
  5. }
  6. },

3、使用“composer dump-autoload”这个命令会自动生成autoload的文件

4、如何在项目中使用该类

  1. use AliyunMNS\Config;
  2.  
  3. class Web
  4. {
  5. public function aliyun()
  6. {
  7. $config = new Config();
  8. var_dump($config);
  9. }
  10. }

5、访问结果,表示成功

  1. object(AliyunMNS\Config)[]
  2. private 'proxy' => null
  3. private 'connectTimeout' => int
  4. private 'requestTimeout' => int
  5. private 'expectContinue' => boolean false

PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载的更多相关文章

  1. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  2. Redis深入学习笔记(一)Redis启动数据加载流程

    这两年使用Redis从单节点到主备,从主备到一主多从,再到现在使用集群,碰到很多坑,所以决定深入学习下Redis工作原理并予以记录. 本系列主要记录了Redis工作原理的一些要点,当然配置搭建和使用这 ...

  3. webpack学习笔记—优化缓存、合并、懒加载等

    除了前面的webpack基本配置,还可以进一步添加配置,优化合并文件,加快编译速度.下面是生产环境配置文件webpack.production.js,与wenbpack.config.js相比其不需要 ...

  4. PHP PSR-4 Autoloader 自动加载(中文版)

    Autoloader 关键词 “必须”("MUST").“一定不可/一定不能”("MUST NOT").“需要”("REQUIRED"). ...

  5. Android学习笔记之BitmapFactory.Options实现图片资源的加载...

    PS:小项目总算是做完了...历经20多天...素材,设计,以及实现全由自己完成...心力憔悴啊...该写写博客记录一下学习到的东西了... 学习内容: 1.使用BitmapFactory.Optio ...

  6. ES6学习笔记(二十)Module 的加载实现

    上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载). 1.浏览器加载 传统方法 HTML 网页中,浏览器通过<sc ...

  7. Windows调试学习笔记:(一)WinDBG中加载SOS和CLR

    最近产品环境出现了部分服务器当机情况,虽然重启之后问题就不出现了.但本着彻底解决问题的态度,想要找到root cause.多次尝试Visual Studio失败(可能是代码惊醒了优化和签名)之后,决定 ...

  8. AntDesign vue学习笔记(五)导航菜单动态加载

    一般的后台系统都有一个树形导航菜单,具体实现如下,主要参考https://my.oschina.net/u/4131669/blog/3048416 "menuList": [ { ...

  9. PHP自动加载SPL的四种处理方式

    libs目录下有3个类文件: Test.class.php <?php class Test { public function __construct() { echo "Loadi ...

随机推荐

  1. [读书笔记]SQLSERVER企业级平台管理实践读书笔记02

    记录一下 这一块 join的理解了 再完善过来. 1. Statistics的用法: 清空执行计划用的命令 dbcc freeproccache 清空buffer pool 里面的缓存命令 dbcc ...

  2. 使用 SSH 秘钥远程连接

    团队开发中常用到 Git.SVN 等版本控制工具,可以大大提高开发效率. 就是将代码统一放到一个代码仓库中,方便管理. 为了安全起见,每次push.pull 代码的时候,都需要输入用户名.密码, 对于 ...

  3. Socket网络编程--Libev库学习(1)

    这一节是安装篇. Socket网络编程不知不觉已经学了快两个月了.现在是时候找个网络库学学了.搜索了很多关于如何学网络编程的博客和问答.大致都是推荐学一个网络库,至于C++网络库有那么几个,各有各的好 ...

  4. BZOJ2822[AHOI2012]树屋阶梯——卡特兰数+高精度

    题目描述 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为N+1尺(N为 ...

  5. BZOJ1915[USACO 2010 Open Gold 1.Cow Hopscotch]——DP+斜率优化

    题目描述 奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶牛们在草地上画了一行N个格子,(3 <=N <= 250,000),编号为1..N.就像任何一个好游戏一样,这样的跳格 ...

  6. TortoiseSVN 忽略文件 忽略已提交文件

    主要以下两种情况: 1.首次提交就做好了忽略拦截:项目首次提交到svn服务器的时候,把该删的删了,然后设置忽略规则,就没问题了. 2.提交一段时间忽然想忽略拦截:经常碰到的,发现设置忽略规则后,没法生 ...

  7. 点分治模板(洛谷P4178 Tree)(树分治,树的重心,容斥原理)

    推荐YCB的总结 推荐你谷ysn等巨佬的详细题解 大致流程-- dfs求出当前树的重心 对当前树内经过重心的路径统计答案(一条路径由两条由重心到其它点的子路径合并而成) 容斥减去不合法情况(两条子路径 ...

  8. Python解惑:整数比较

    在 Python 中一切都是对象,毫无例外整数也是对象,对象之间比较是否相等可以用==,也可以用is.==和is操作的区别是: is比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对 ...

  9. pyEcharts

    例子: from pyecharts import Line line = Line("我的第一个图表", "这里是副标题",width="800px ...

  10. numpy random

    np.random.seed()用法: np.random.seed(5) print(np.random.permutation(np.array([i for i in range(9)]))) ...