ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-06-04 23:08:44  阅读:275  来源: 互联网

标签:vendor Openresty Autoloader autoload 自动 composer PSR PHP


参考文献:

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

 

<?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的文件

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

use Openresty\LuaRedis;

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

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

 二、引入一个支付宝的SDK

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

2、编辑composer.json

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

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

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

use AliyunMNS\Config;

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

5、访问结果,表示成功

object(AliyunMNS\Config)[3]
  private 'proxy' => null
  private 'connectTimeout' => int 3
  private 'requestTimeout' => int 35
  private 'expectContinue' => boolean false

 

标签:vendor,Openresty,Autoloader,autoload,自动,composer,PSR,PHP
来源: https://blog.51cto.com/u_7242631/2867285

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有