php psr 编码规范_PHP之PSR-4规范:自动加载

1. 概述

本 PSR 是关于由文件路径 自动载入 对应类的相关规范,
本规范是可互操作的,可以作为任一自动载入规范的补充,其中包括 PSR-0,此外,
本 PSR 还包括自动载入的类对应的文件存放路径规范。

关于「能愿动词」的使用

为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下:

  • 必须 (MUST):绝对,严格遵循,请照做,无条件遵守;
  • 一定不可 (MUST NOT):禁令,严令禁止;
  • 应该 (SHOULD) :强烈建议这样做,但是不强求;
  • 不该 (SHOULD NOT):强烈不建议这样做,但是不强求;
  • 可以 (MAY) 和 可选 (OPTIONAL) :选择性高一点,在这个文档内,此词语使用较少;

参见:RFC 2119

2. 详细说明

  1. 此处的「类」泛指所有的「Class类」、「接口」、「traits 可复用代码块」以及其它类似结构。
  2. 一个完整的类名需具有以下结构: ()* 完整的类名 必须 要有一个顶级命名空间,被称为 "vendor namespace"; 完整的类名 可以 有一个或多个子命名空间; 完整的类名 必须 有一个最终的类名; 完整的类名中任意一部分中的下滑线都是没有特殊含义的; 完整的类名 可以 由任意大小写字母组成; 所有类名都 必须 是大小写敏感的。
  3. 当根据完整的类名载入相应的文件 完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为「命名空间前缀」,其必须与至少一个「文件基目录」相对应; 紧接命名空间前缀后的子命名空间 必须 与相应的「文件基目录」相匹配,其中的命名空间分隔符将作为目录分隔符。 末尾的类名 必须 与对应的以 .php 为后缀的文件同名。 自动加载器(autoloader)的实现 一定不可 抛出异常、一定不可 触发任一级别的错误信息以及 不应该 有返回值。

3. 例子

下表展示了符合规范完整类名、命名空间前缀和文件基目录所对应的文件路径。

2c7531b0bc2e52a5302e7e9dd2394e27.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之日期时间选择器使用方法

// 设置日期 @Override public void onClick(View v) {new DatePickerDialog(activity,new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {// 设置calendar.set(year, monthOfYear, day…

两台服务器虚拟成一个ip地址,两台服务器如何用一个ip地址

两台服务器如何用一个ip地址 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。检查Pkey是否一致。查看弹性云服务器内部分配到的Pkey…

近期调优总结

近期由于公司举行大促,访问量巨增,预计流量为平时流量的60倍,在增加了两台服务器后,为了更大程度的压榨服务器性能,从各个层面上进行了优化,现在做下总结以备忘。 1)nginx优化 nginx优化主要涉及…

SQL注入漏洞全接触--高级篇

2019独角兽企业重金招聘Python工程师标准>>> 看完入门篇和进阶篇后,稍加练习,破解一般的网站是没问题了。但如果碰到表名列名猜不到,或程序作者过滤了一些特殊字符,怎么提高注入的成功率?怎么样提高猜解效率?请大家接…

除了沉迷酒色之外,你还做过什么?

1 是了,说的就是我▼2 你这叫落井又下石...▼3 如何让衣服瞬间好看?▼4 自己品品...▼5 买家秀与卖家秀▼6 舍友的水杯...妥妥养生局!▼7 还有...▼你点的每个赞,我都认真当成了喜欢

ssl certificate 验证

2019独角兽企业重金招聘Python工程师标准>>> 生成certificate: client 验证certificate: 转载于:https://my.oschina.net/u/255456/blog/545568

使用C#开发交互式命令行应用

前言如果你开发过vue应用,应该对其交互式命令行印象深刻:它允许你无需任何编程经验,仅需回答问题,就可完成vue应用创建。虽然作为.NETer,大部分情况下我们不会使用命令行,但是还是希望能用C#开发出这样的交…

Android之JSON处理器FastJson

FastJson fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发 主要特点: 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson) 强大(支持普通JDK类包括任意Java B…

300 s7 置零指令_西门子1200与200、200 SMART置位复位指令的区别

S7-1200的位逻辑指令,这也是我们在学习PLC编程时最先接触到的指令,最基本的指令。位逻辑运算指令是对二进制位进行操作的指令,数据类型是BOOL型,这其中又包括了触点指令与赋值指令、置位与复位指令、沿脉冲检测指令这三个部分。在…

【SAS NOTES】sas对中文的支持

对sas文件的修改 nls\en\SASV9.CFG81行找到/* SAS/SHARE APPLSYS macro library pathname */-SET SASSAML !sasext0\share\sasmacro\在后面加入-DBCSLANG CHINESE-DBCS-DBCSTYPE PCMS180行处找到/* Setup the SAS System load image search paths definition */-PATH (在下一行…

惊现试衣间照片流出??

1 论断句的重要性▼2 这是个有味道的手机壳▼3 啊这...就挺秃然的(素材来源网络,侵删)▼4 男朋友的瘦肉礼物(via.苍南派)▼5 哭泣吧,打工人!!▼6 朋友送的生日礼物被子还是衣服啊…

【转载】创建型-工厂方法模式

介绍:在简单工厂模式中,我们提到,工厂方法模式是简单工厂模式的一个延伸,它属于Gof23中设计模式的创建型设计模式。它解决的仍然是软件设计中与创建对象有关的问题。它可以更好的处理客户的需求变化。引入我们继续来说"new&q…

主机挂载存储_备战CKA每日一题——第3天 | 对接CSI存储知识

本活动在微信公众号【我的小碗汤】上举行,这里参与答题无效哦! 昨日考题 在Kubernetes PVCPV体系下通过CSI实现的volume plugins动态创建pv到pv可被pod使用有哪些组件需要参与? A. PersistentVolumeController CSI-Provisoner CSI controll…

Android之Android Studio常用插件

Android Studio常用插件 Android Studio常用插件ButterKnife Zelezny官网:http://jakewharton.github.io/butterknife/github:https://github.com/JakeWharton/butterknife功能:将光标停留在Activity中onCreate方法中setContentView方法的xml…

如何在 .NETCore 中修改 QueryString ?

咨询区 vcsjones:我有一个绝对路径的 url 包含了 querystring,现在我想对 querystring 进行修改和添加,我不想生硬的用字符串提取,或者是 正则表达式,而且还有恶心的 编码解码 问题,所以我更希望用 .NETCor…

VNCServer 配置

1、首先要配置的是服务端A 确认服务器端是否安装了vncserver使用rpm –qa vnc命令如果收到如下信息说明已经安装了vncserver,[rootlocalhost: ~]#rpm -qa |grep vncgtk-vnc-python-0.3.2-3.el5vnc-server-4.1.2-14.el5gtk-vnc-0.3.2-3.el5vnc-4.1.2-14.el5B从光盘找…

转 c#读写xml文件

已知有一个XML文件&#xff08;bookstore.xml&#xff09;如下&#xff1a;<?xml version"1.0" encoding"gb2312"?><bookstore> <book genre"fantasy" ISBN"2-3631-4"> <title>Oberons Legacy</titl…

招人!招人!这篇推文不要标题,只要你!

对&#xff0c;没错&#xff0c;就是这么直接超模君要要要要招人了因为我们知道很多有才华有能力的人并没有找到适合自己的工作比如你每当夜幕降临躺在床上仰望星空&#xff08;望着天花板&#xff09;的时候你的内心是不是都充满了迷茫&#xff1f;但&#xff0c;这并不是你的…

Android之INSTALL_FAILED_INSUFFICIENT_STORAG解决办法

INSTALL_FAILED_INSUFFICIENT_STORAG 有时候我们项目再次运行的时候,会出现INSTALL_FAILED_INSUFFICIENT_STORAG错误,先翻译下是什么意思,实例化失败由于空间不足,师傅告诉我重启手机,第一次还真有效,后来又有这个错误,然后我到网上找到了一些方法。 解决办法一…

用python爬虫抓站的一些技巧总结

转自http://obmem.info/?p476 1.最基本的抓站 import urllib2 content urllib2.urlopen(http://XXXX).read() -2.使用代理服务器这在某些情况下比较有用&#xff0c;比如IP被封了&#xff0c;或者比如IP访问的次数受到限制等等。 import urllib2 proxy_support urllib2.Prox…