第12篇 PSR-1规范
这个规范也不多,七点如下:
1. Overview
Files MUST use only
<?php
and<?=
tags.Files MUST use only UTF-8 without BOM for PHP code.
Files SHOULD either declare symbols (classes, functions, constants, etc.) orcause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.
Namespaces and classes MUST follow an "autoloading" PSR: [PSR-0, PSR-4].
Class names MUST be declared in
StudlyCaps
.Class constants MUST be declared in all upper case with underscore separators.
Method names MUST be declared in
camelCase
.
第1条
这个基本都是大家都懂得的,PHP代码必须只使用长标签(<?php ?>
)或者短输出式标签(<?= ?>
);而不要使用其他标签。
之所以说这个,是因为我们在学习PHP的时候,一般的教材都告诉我们说,php有4种标记风格:php的4种标记风格 所以,很多人就乱来了。瞎鸡巴写。特别是asp风格的兼职是折磨好么!!!
第2条
这个不多说,保存的时候格式必须是无BOM的UTF-8格式,否则会出现很多无法解释的千奇百怪的问题。千万别傻逼的用windows下的text文本编辑器保存文件啊
第3条
这个通俗的说呢。就是别把一些输出和修改的操作(副作用
) 和 类文件混合在一起,专注一点,这个文件专门来声明class, 那个文件专门来修改配置文件,别混在一起写:
所以,以下的这个文件是有问题的,最好不要这样:
// 副作用:修改了ini配置
ini_set('error_reporting', E_ALL);
// 副作用:载入了文件
include "file.php";
// 副作用:产生了输出
echo "<html>\n";
// 声明 function
function foo()
{
// 函数体
}
你看上面看起来多乱啊。最好全部分开来写:
namespace Lib;
class Name
{
public function __construct()
{
echo __NAMESPACE__ . "<br>";
}
public static function test()
{
echo __NAMESPACE__ . ' static function test <br>';
}
}
修改ini:
ini_set('error_reporting', E_ALL);
require 文件:
require DIR . '/loading.php';
spl_autoload_register("\\AutoLoading\\loading::autoload");
你看是不是整齐好看多了。当然这个是很难约束的。自己仔细划分。
第4条
第4条是约束namespace的,前面已经说过,不多说。值得说的是名字要是驼峰方式来
第5条
class name必须要用驼峰方式写,驼峰又分小驼峰和大驼峰(小驼峰是第一个字母是小写)这样写看着舒服也比较规范,不做要求,反正是驼峰就可以了。我喜欢用小驼峰:
class getUserInfo
{
}
第6条
是规定类中的常量名(const)
声明必须要全部大小
,如果有多个单词,就用_
分开:
class getUserInfo
{
//全部大写
const NAME = 'phper';
//用_隔开
const HOUSE_INFO = '已经大上海买房'
public function getUserName()
{
//
}
}
第7条
method name必须要用驼峰方式写,大小驼峰都可以,不做要求,我喜欢用小驼峰:
class getUserInfo
{
public function getUserName()
{
//
}
}
最新文章
- python 2.7 学习笔记--文件的基本操作
- IMD中一些JS方法总结
- liunux 修改hostname
- 移动应用抓包调试利器Charles
- SPF 简介
- SQLPLUS连接oracle
- 使用WebDriver遇到的那些坑(转)
- openssl rsa 私钥 PKCS8私钥 公钥
- Magento 切换成中文后没有数据信息解决办法
- 熟练掌握HDFS的Java API接口访问
- ansible模块
- CSS传统布局之布局模型
- Yii 2.0 数据库操作总结
- Swarm 如何实现 Failover?- 每天5分钟玩转 Docker 容器技术(98)
- java之Spring实现控制反转
- 【UOJ244】【UER #7】短路
- css3实现不同的loading
- numpy库的常用方法
- Spark安装过程纪录
- WorldWind源码剖析系列:经纬度格网类LatLongGrid
热门文章
- 获取微信公众号用户的基本信息(UnionID机制)
- 第二篇:Spark SQL Catalyst源码分析之SqlParser
- C++中map的用法
- Codeforces Round #447 (Div. 2) C 构造
- 客户端类中中记录异常的方法: 使用Log4net
- python中配置文件的使用
- Cassandra 的数据存储结构——本质是SortedMap<;RowKey, SortedMap<;ColumnKey, ColumnValue>;>;
- react layout init
- Python基础学习(第2天)
- L129