资讯专栏INFORMATION COLUMN

PHP PSR-0 自动加载规范

kyanag / 832人阅读

摘要:自动加载规范此规范已被弃用本规范已于年月日被标记为弃用,目前最新的替代规范为。本文是为自动加载器实现通用自动加载,所需要遵循的编码规范。这也是目前建议的类文件载入方式。

自动加载规范

此规范已被弃用 - 本规范已于2014年10月21日被标记为弃用,目前最新的替代规范为 [PSR-4] 。

本文是为自动加载器(autoloader)实现通用自动加载,所需要遵循的编码规范。

规范说明

一个标准的 命名空间(namespace) 与 类(class) 名称的定义必须符合以下结构:
()*

其中Vendor Name为每个命名空间都必须要有的一个顶级命名空间名;

需要的话,每个命名空间下可以拥有多个子命名空间;

当根据完整的命名空间名从文件系统中载入类文件时,每个命名空间之间的分隔符都会被转换成文件夹路径分隔符;

类名称中的每个 _ 字符也会被转换成文件夹路径分隔符,而命名空间中的 _ 字符则是无特殊含义的。

当从文件系统中载入标准的命名空间或类时,都将添加 .php 为目标文件后缀;

组织名称(Vendor Name)命名空间(Namespace) 以及 类的名称(Class Name) 可由任意大小写字母组成。

范例

DoctrineCommonIsolatedClassLoader => /path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php

SymfonyCoreRequest => /path/to/project/lib/vendor/Symfony/Core/Request.php

endAcl => /path/to/project/lib/vendor/Zend/Acl.php

endMailMessage => /path/to/project/lib/vendor/Zend/Mail/Message.php

命名空间以及类名称中的下划线

amespacepackageClass_Name => /path/to/project/lib/vendor/namespace/package/Class/Name.php

amespacepackage_nameClass_Name => /path/to/project/lib/vendor/namespace/package_name/Class/Name.php

以上是使用通用自动加载必须遵循的最低规范标准, 可通过以下的示例函数 SplClassLoader 载入 PHP 5.3 的类文件,来验证你所写的命名空间以及类是否符合以上规范。

实例

以下示例函数为本规范的一个简单实现。


SplClassLoader 实例

以下的 gist 是 一个 SplClassLoader 类文件的实例,如果你遵循了以上规范,可以把它用来载入你的类文件。 这也是目前 PHP 5.3 建议的类文件载入方式。

Gist地址

转自Github(PizzaLiu)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21163.html

相关文章

  • PHP自动加载功能原理解析

    摘要:前言在开始之前,欢迎关注我自己的博客这篇文章是对自动加载功能的一个总结,内容涉及的自动加载功能的命名空间的与标准等内容。要实现第一步,第二步的功能,必须在开发时约定类名与磁盘文件的映射方法,只有这样我们才能根据类名找到它对应的磁盘文件。 前言 在开始之前,欢迎关注我自己的博客:www.leoyang90.cn 这篇文章是对PHP自动加载功能的一个总结,内容涉及PHP的自动加载功能、P...

    Imfan 评论0 收藏0
  • PSR-4——新鲜出炉的PHP规范

    摘要:制定的规范,简称,是开发的事实标准。原本有四个规范,分别是自动加载基本代码规范代码样式日志接口年底,新出了第个规范。区别在于的规范比较干净,去除了兼容以前版本的内容,有一点升级版的感觉。 FIG制定的PHP规范,简称PSR,是PHP开发的事实标准。 PSR原本有四个规范,分别是: PSR-0 自动加载 PSR-1 基本代码规范 PSR-2 代码样式 PSR-3 日志接口 20...

    Fundebug 评论0 收藏0
  • PHP PSR规范

    摘要:前言试问现在的码农对规范了解多少。写了几年代码的我,居然因不了解规范被鄙视特此来交下学费网上资料有很多,本文只做链接指引什么是是的简称,这个是组织制定的一套规范。 前言 试问现在php的码农对psr规范了解多少。 写了几年代码的我,居然因不了解规范被鄙视!特此来交下学费 网上资料有很多,本文只做链接指引 什么是PSR PSR是PHP Standards Recommendatio...

    weknow619 评论0 收藏0
  • PSR-4:自动加载

    摘要:概述这份声明了关于从文件路径自动加载类的规范。当根据完全限定类名加载对应的文件时由最开始的命名空间开始,连续的一个或多个命名空间组成的序列,不包括最前面的命名空间分隔符,在这个完全限定类名中这个序列称为命名空间前缀,对应了至少一个基础目录。 PSR-4:自动加载 翻译:薛粲授权许可:CC BY-NC 4.0 这份文档是《PSR-4: Autoloader》的非官方译文。 英文原文使用的...

    ZweiZhao 评论0 收藏0
  • PHPPSR简要规范

    摘要:是一系列关于开发的规范,分有好几个版本,自己学的也较为肤浅,但还是希望能时常查看规范,为了方便记忆和遵循,我把关键词为必须的捡拾出来,做个简单地必要规范的记录。所有文件必须使用作为行的结束符。 PSR是一系列关于PHP开发的规范,分有好几个版本,自己学的也较为肤浅,但还是希望能时常查看规范,为了方便记忆和遵循,我把关键词为必须的捡拾出来,做个简单地必要规范的记录。(就是个搬砖的。。。)...

    Steve_Wang_ 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<