Modern 阅读笔记 一 PSR标准

一、标准

PSR php standards Recommendation PHP 推荐标准

PSR-1 基本代码风格

PSR-2 严格的代码风格

PSR-3 日志记录器接口

PSR-4 自动加载

具体说明:

PSR-1 基本代码风格

1、PHP标签 使用<?php ?> 或者 <?= ?>

2、编码 UTF-8

3、目的 一个PHP文件可以定义符号(类,性状,函数和常量等),或者执行有副作用的操作,但不能同时做这两件事。这是一个简单的要求

4、自动加载 PHP 遵循PSR-4

5、类的名称 必须使用驼峰式, 并且首字母大写

6、常量的名称 必须全部使用大写字母,如果需要 加下划线 MAX_LENTH

7、方法的名称 必须使用驼峰式,首字母小写

PSR-2 严格的代码风格 (其实就是更细节的地方)

1、先把PSR-1贯彻了

2、缩进, 推荐4个空格,不推荐tab 因为不同编辑器宽度各异,而且渲染效果也不同,为了得到最好的外观一致性,所以,。。。

3、文件和代码行 PHP文件必须使用UNIX风格的换行符    最后要有一个空行,并且不要用PHP关闭标签 因为会被当成输出(我还真遇到过)

4、关键字 true false 都小写

5、命名空间 每个命名空间语句后面必须跟着一个空行,所有use 语句完毕后,也要加一个空行。

6、类的自定义体的括号位置,另起一行

7、可见性 类中的每个属性和方法都要声明可见性。类的每个属性 都要声明可见性,public private protected等

8、 if else 这种判断符号 加空格 if ($a == $b) { 巴拉巴拉

PSR-3 日志记录器接口

1、第三个推荐规范居然不是指导方针,而是一个接口,规定PHP日志记录器组件可以实现的方法,主要是一些方法和参数,这里就不展开了,比较流行的日志组件是monolog

PRS-4 自动加载器

时间: 2024-11-08 20:55:48

Modern 阅读笔记 一 PSR标准的相关文章

01软件构架实践阅读笔记之一

软件构架实践是我们下学期要学习的一本书,所以我想将这本书作为我阅读笔记的一本书. 在这本念书的第一章是总序,在其中提到: 1.所谓"正确的"就是在指功能.性能和成本几个方面都能满足用户要求且无缺陷: 2.所谓"无缺陷"就是在指编码后对软件系统进行彻底的穷举测试修复了所有的缺陷,保证所编写的代码本身不存在缺陷: 但是我们知道编写一个软件,并不可能很好的达到这种的效果,所以应该做到作者提到的"创造.应用.和推广"战略.但是我存在这样的问题: 1.创造

《STL源码剖析》---stl_tree.h阅读笔记

STL中,关联式容器的内部结构是一颗平衡二叉树,以便获得良好的搜索效率.红黑树是平衡二叉树的一种,它不像AVL树那样要求绝对平衡,降低了对旋转的要求,但是其性能并没有下降很多,它的搜索.插入.删除都能以O(nlogn)时间完成.平衡可以在一次或者两次旋转解决,是"性价比"很高的平衡二叉树. RB-tree(red black tree)红黑树是平衡二叉树.它满足一下规则 (1)每个节点不是红色就是黑色. (2)根节点是黑色. (3)如果节点为红色,则其子节点比为黑色. (4)任何一个节

《STL源码剖析》---stl_iterator.h阅读笔记

STL设计的中心思想是将容器(container)和算法(algorithm)分开,迭代器是容器(container)和算法(algorithm)之间的桥梁. 迭代器可以如下定义:提供一种方法,能够依序寻访某个容器内的所有元素,而又无需暴露该容器的内部表达方式. 在阅读代码之前,要先了解一个新概念:Traits编程技法 template <class T> struct MyIter { typedef T value_type //内嵌型别声明 T *ptr; MyIter(T *p = 0

Hadoop阅读笔记(二)——利用MapReduce求平均数和去重

前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一年……我在博客园-_-#,希望用dt的代码燃烧脑细胞,温暖小心窝. 上篇<Hadoop阅读笔记(一)——强大的MapReduce>主要介绍了MapReduce的在大数据集上处理的优势以及运行机制,通过专利数据编写Demo加深了对于MapReduce中输入输出数据结构的细节理解.有了理论上的指导,仍

《构建之法》阅读笔记一

1.程序=数据结构+算法 2.构建管理,源代码管理,软件设计,软件测试,项目管理是软件工程的核心部分. 3.软件=程序+软件工程 4.软件企业=软件+商业模式 5.软件开发的不同阶段:玩具阶段,业余爱好阶段,探索阶段,成熟的产业阶段 6.软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程 7.软件工程包括:软件需求分析,软件设计,软件构建,软件测试和软件维护等领域 8.软件的特殊性:复杂性,不可见性,易变性,服从性,非连续性 9. 软件工程的目标--创造"足够好&quo

《用户故事与敏捷开发》阅读笔记02

 <用户故事与敏捷开发>阅读笔记02       这周读了<用户故事与敏捷开发>的第四至七章,第四章讲述的是如何搜集故事,也就是如何正确的去找到用户需求.作者明确指出"引用"和"捕捉"是不合用的.所谓"引用"和"捕捉",我想是通过用户对功能的表述,开发人员从中获取需求信息吧.如果是这种方法来获取需求,正如作者所说,用户不会知道所有的需求,所以只靠着这方法是远远不够的.对于故事编写的数量以及程度,作者认为

socketserver.py代码阅读笔记

socketserver.py源码阅读笔记 前言 一直想弄清楚一个http server和Web框架的工作原理.但以我目前的实力,阅读一个http server或web框架代码还是太难了.后来又对异步IO.并发产生的兴趣.前几天做一个大作业需要写几个各种不同并发模型的TCP Server,写完才想起Python有现成的socketsever模块可以用,完全不需要自己写.于是对比了一下我写的代码和socketsever.py,发现我写的真没socketsever写的好.我的代码经验还是太少了.于是

《STL源码剖析》---stl_hashtable.h阅读笔记

在前面介绍的RB-tree红黑树中,可以看出红黑树的插入.查找.删除的平均时间复杂度为O(nlogn).但这是基于一个假设:输入数据具有随机性.而哈希表/散列表hash table在插入.删除.查找上具有"平均常数时间复杂度"O(1):且不依赖输入数据的随机性. hash table的实现有线性探测.二次探测.二次散列等实现,SGI的STL是采用开链法(separate chaining)来实现的.大概原理就是在hash table的每一项都是个指针(指向一个链表),叫做bucket.

构建之法阅读笔记四—团队开发

构建之法阅读笔记—团队开发 软件开发过程中有团队和非团队之分.其区别就在于目标利益的不同,团队中每个人的目标是一致的.共同的,会根据实际情况给每个人分配不同的任务,不会计较个人利益的得失.非团队每个人的目标都是不同的,大家都为自己的利益而奋斗. 在阅读了构建之法后,我了解到团队开发有以下的特点:1.团队开发有一致的集体目标,团队要完成这个目标.一个团队成员不一定要同时工作.2.团队成员有各自的分工,互相依赖合作,共同完成任务.还有完成一个项目开发的工作流有业务建模,需求,分析和设计,实现,测试,