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

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 参考文献:1、PHP PSR-4 Autoloader 自动加载(中文版)2、PHP编码规范(中文版)导读3、PHP-PSR-[0-4]代码规范基本步骤:(1)在vendor 下新建一个项目(2)修改composer.

参考文献:

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

 

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
22天前
|
PHP 项目管理 开发者
深入解析PHP的命名空间和自动加载机制
【4月更文挑战第4天】 在PHP的编程世界中,命名空间和自动加载机制是构建大型应用程序时不可或缺的工具。本文将深入探讨这两个概念,揭示它们如何简化代码结构、避免类名冲突以及提高代码维护性。通过对PHP命名空间的由来、作用域和使用方法的细致剖析,以及对自动加载机制工作原理和应用实践的全面讲解,读者将获得有效管理复杂项目中依赖关系的能力。
|
23天前
|
缓存 PHP 开发者
PHP中的自动加载机制及其优化方法
传统的PHP开发中,经常会遇到类文件加载繁琐、效率低下的情况,而PHP的自动加载机制能够很好地解决这一问题。本文将深入探讨PHP中的自动加载机制,介绍其原理及实现方式,并提出了一些优化方法,帮助开发者提升代码加载效率,提高应用性能。
|
27天前
|
PHP 数据库 开发者
深入理解PHP中的命名空间与自动加载机制
在PHP开发实践中,合理利用命名空间和自动加载机制能够显著提升代码的可维护性和效率。本文将详细探讨PHP命名空间的概念、作用以及如何结合自动加载机制来优化代码结构。通过实例分析,我们将了解如何避免常见的命名冲突问题,并掌握自动加载策略在项目中的实际应用。文章的目的是为读者提供一套清晰的指南,帮助其在实际项目中灵活运用这些关键技术,以实现更加模块化和高效的代码管理。
|
1月前
|
PHP 开发者
深入理解PHP的命名空间与自动加载机制
【2月更文挑战第29天】在现代PHP开发实践中,命名空间和自动加载机制是提升代码组织和维护效率的重要概念。本文首先介绍命名空间的基本概念及其在PHP中的应用,然后详细探讨了自动加载机制的原理与实现,并通过示例展示了如何在实际项目中合理运用这些特性来优化代码结构,减少冗余,并提高模块间的解耦性。
|
1月前
|
PHP
深入理解PHP的命名空间与自动加载机制
在现代PHP开发中,命名空间和自动加载机制是两个重要的特性,它们有助于解决代码重用、依赖管理等问题。本文将详细介绍PHP的命名空间概念、如何定义和使用命名空间,以及自动加载机制的原理和实现方法。通过阅读本文,你将更好地理解这些特性,并能够在实际项目中灵活运用。
|
1月前
|
PHP
深入理解PHP的命名空间和自动加载机制
【2月更文挑战第21天】在PHP开发中,命名空间和自动加载机制是两个非常重要的概念。本文将深入探讨这两个概念,解释它们的作用,以及如何在项目中使用它们来提高代码的可维护性和可读性。文章将通过实例代码,详细解析命名空间的使用规则和自动加载机制的工作原理,帮助读者更好地理解和应用这两个特性。
15 0
|
1月前
|
PHP 开发者
深入理解PHP的命名空间与自动加载机制
【2月更文挑战第30天】在现代PHP开发中,命名空间和自动加载机制是两个重要的特性,它们为代码的组织和重用提供了强大的支持。本文将深入探讨PHP中的命名空间概念,并详细解析自动加载机制的原理及其实现方法。通过阅读本文,读者可以掌握如何有效地使用命名空间来避免名称冲突,以及如何利用自动加载机制提高代码的可维护性和性能。
|
1月前
|
PHP 开发者
深入理解PHP的命名空间与自动加载机制
【2月更文挑战第30天】在PHP的编程实践中,命名空间和自动加载机制是实现代码组织和维护的重要工具。本文将探讨命名空间的概念、如何合理地使用它们来避免名称冲突,并深入解析自动加载机制的原理及其在现代PHP框架中的应用。通过理解这些核心概念,开发者可以编写出更加模块化、易于维护的PHP代码。
|
10天前
|
PHP 开发者
深入理解PHP中的命名空间与自动加载机制
【4月更文挑战第16天】在PHP的编程实践中,命名空间和自动加载机制是两个核心概念,它们不仅提高了代码的可维护性,还增强了代码的复用性。本文将详细探讨PHP中命名空间的概念、实现及其与自动加载机制的结合使用,帮助开发者构建更加模块化和易于管理的PHP应用程序。通过实例分析,我们将了解如何有效地利用这些特性来优化项目结构,减少代码冗余,并避免潜在的命名冲突。
12 4
|
14天前
|
PHP
深入理解PHP中的命名空间和自动加载机制
【4月更文挑战第11天】在PHP的编程世界中,命名空间和自动加载机制是两个强大的工具,它们能够有效地解决代码冲突和简化代码的加载过程。本文将深入探讨这两个概念,解释它们是如何工作的,以及如何在实际开发中应用它们来提高代码的可维护性和效率。