参考文献:

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

PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载-LMLPHP

<?php

namespace Openresty;

class LuaRedis
{
public static function getView()
{
echo "NameSpace = ".__NAMESPACE__."<br/> ClassName = ".__CLASS__."<br/> Method = ".__METHOD__;
}
}

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

    "autoload": {
"psr-4": {
"Openresty\\": "vendor/phplua"
}
},

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

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

PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载-LMLPHP

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

use Openresty\LuaRedis;

class Web
{
/**
* PSR4 自动载入测试
*/
public function lua(){
LuaRedis::getView();
}
}

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

PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载-LMLPHP

二、引入一个支付宝的SDK

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

PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载-LMLPHP

2、编辑composer.json

    "autoload": {
"psr-4": {
"Openresty\\": "vendor/phplua",
"AliyunMNS\\": "vendor/aliyun/AliyunMNS"
}
},

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

PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载-LMLPHP

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

use AliyunMNS\Config;

class Web
{
public function aliyun()
{
$config = new Config();
var_dump($config);
}
}

5、访问结果,表示成功

object(AliyunMNS\Config)[]
private 'proxy' => null
private 'connectTimeout' => int
private 'requestTimeout' => int
private 'expectContinue' => boolean false
04-13 16:52