### PHP MySQL 开发规范
#### 第一章:前言
本规范旨在为LAMP环境下的开发提供一套统一的标准,确保代码质量与可维护性。LAMP代表Linux、Apache、MySQL和PHP,是构建Web应用程序的常用技术栈。文档版本号为V0.1,由gundamzaku@163.com整理,其中数据库部分参考了汪洋(ruochen0926@gamil.com)提供的规范。
#### 第二章:PHP & JavaScript 编码规范
本章详细介绍PHP和JavaScript的编码规范,包括排版、变量和方法命名等方面。
##### 一、排版规范
1. **程序之间的缩进**
- 使用Tab键进行缩进,每个缩进相当于两个中文字符的宽度(即四个字节)。
- 示例:
```php
if ($a != $b) {
// 程序
}
```
2. **空格的应用**
- 在判断类条件语句的操作符两侧预留空格。
- 循环语句中的分号之间预留空格。
- 赋值语句中的等号两侧预留空格。
- 示例:
```php
while ($a < 100) {
// 程序
}
if ($a == $b) {
// 程序
}
for ($i = 0; $i <= 10; $i++) {
// 程序
}
$a = 10;
```
3. **赋值操作的变量之间的对齐**
- 多个变量赋值时,考虑对齐变量名,以提高代码可读性。
- 示例:
```php
$a = $b;
$test = 1;
$myGod = "我是神";
```
4. **换行**
- 条件及函数段内的程序块,考虑首行多换一行,以方便阅读。
- 函数或对象方法内的程序块,考虑首行多换一行,以方便阅读。
- 示例:
```php
for ($i = 0; $i < 10; $i++) {
echo $i;
}
function test() {
$a = 100;
return $a;
}
```
5. **分层**
- 将相似的操作放在一起,通用性强的函数放入`include/function.inc.php`。
- 示例:
```php
<?php
include "function.inc.php";
function onlyForThisPage() {
// 专为这个页面特别写的方法。
}
$a = $b;
?>
```
6. **对长语句的编排**
- 可以分成多行编写,考虑以低优先级的操作符进行段落的换行,并注意缩进。
- 示例:
```php
for ($i = 0; $j = 0; ($i > $mySpecialString[$thisStringWidth]) && ($j > $mySpecialString[$thisStringHeight]); $i++; $j++) {
}
```
7. **数组的赋值规则**
- 数量较少时,可以在一行完成赋值。
- 数量较多时,使用多行以提高可读性。
- 示例:
```php
$arr = array("mary", "terry", "john");
$arr = array("n1" => "mary", "n2" => "terry", "n3" => "john");
$arr[$i][1] = "john";
$arr[$i][2] = "mary";
$arr[$i][3] = "terry";
```
8. **函数&方法&条件&循环语句的排版格式**
- "{" 左括号不换行,"}" 换行。
- 示例:
```php
function test() {
}
if ($a = 100) {
}
```
#### 二、变量&方法命名规则
1. **命名规则**
- 分为四套规则,适用于PHP和JavaScript。
- 详细规则未给出,通常建议采用以下原则:
- **驼峰命名法** (`camelCase`):首单词小写,后续单词首字母大写,适用于变量和方法名。
- **下划线分隔** (`snake_case`):所有单词小写并用下划线分隔,适用于常量和配置文件。
- **帕斯卡命名法** (`PascalCase`):所有单词首字母大写,适用于类名。
- **全部大写** (`ALL_CAPS`):全部大写字母,适用于常量。
- 示例:
```php
$myVariableName = "value";
$my_constant_name = "value";
class MyClass {}
define('MY_CONSTANT', 'value');
```
#### 总结
通过遵循以上编码规范,可以显著提升代码质量和团队协作效率。良好的编码实践有助于减少错误、提高代码可读性和可维护性。此外,这些规范还为开发人员提供了清晰的指引,确保项目的一致性和高效性。无论是初学者还是经验丰富的开发者,都应该重视编码规范的制定与实施。