# 开发规范
### 命名规范
文件名大小写要一致,否则上传到Linux服务器将无法解析
框架类以及函数命名规则为驼峰,如: getField
常量以大写字母与下划线组合 如 APP_PATH
数据库与数据表使用小写字母与下划线组合,如 aa_user
### 开发建议
尽量遵守框架命名规范
开发过程中开启DEBUG模式,有助于快速分析错误
### 良好的编程风格和注释,如:
~~~
<?php
namespace aaphp;
/**
* 配置
* Class Config
* @package aaphp
* @method mixed common(string $key = '', string $value = '') static 公共配置文件
* @method mixed database(string $key = '', string $value = '') static 数据库配置文件
* @method mixed router(string $key = '', string $value = '') static 路由配置文件
* @method mixed param(string $key = '', string $value = '') static 自定义参数配置文件
*/
final class Config
{
/**
* @var object 对象实例 单例
*/
private static $instance;
/**
* @var array 保存全部的配置信息,多维数组
*/
private static $config = [];
/**
* 单例模式,获取自身实例化对象
* @return object [自身实例化对象]
*/
public static function instance()
{
if (is_null(self::$instance)) {
self::$instance = new self();
}
return self::$instance;
}
/**
* 保护,防止外部实例化,单例模式
*/
protected function __construct()
{
// 读取 ./config下面的所有配置文件
$fileList = scandir(USER_CONFIG_PATH);
foreach ($fileList as $key => $value) {
if ('.php' == strchr($value, '.php')) {
$configPath = USER_CONFIG_PATH . '/' . $value;
// 引入
$config = include_once($configPath);
$key = str_replace('.php', '', $value);
// 保存配置内容
self::$config[$key] = $config;
}
}
}
/**
* 配置信息的读取或修改
* @param $type [配置文件名称(不包含后缀名)例子:Config::common('default_moduel');]
* @param string $key [配置文件的键名]
* @param string $value [配置文件的值]
* @return array|string [配置文件信息]
*/
public function config($type, $key = '', $value = '')
{
if ('' == $key) {// 什么都不传,则返回所有配置项信息
return self::$config[$type];
} else if ('' != $key && '' == $value) {// 只传了$key,则返回对应value
if (isset(self::$config[$type][$key])) {
return self::$config[$type][$key];
} else {
return '';
}
} else {// $key和$value都传,则是临时设置配置的值
self::$config[$type][$key] = $value;
}
}
/**
* 使方法可以被静态调用 例子:Config::common('default_moduel');
* @param string $function [需要调用的方法]
* @param array $arguments [参数数组]
* @return mixed|string [配置文件信息]
*/
public static function __callStatic($function, $arguments)
{
$class = Config::instance();
$key = array_shift($arguments);
$value = array_shift($arguments);
if (!isset(self::$config[$function])) {
Error::halt(USER_CONFIG_PATH . '/' . $function . '.php 不存在');
}
return $class->config($function, $key, $value);
}
}
~~~
- 序言
- 安装
- 基础
- 性能
- 例子
- 开发规范
- 目录结构
- 命名空间
- 自动加载
- 架构
- 入口文件
- 模块设计
- 系统常量
- 执行流程
- 路由
- 路由介绍
- 路由定义
- 规则路由
- 正则路由
- 配置
- 配置格式
- 配置文件
- 配置操作
- 控制器
- 新建控制器
- 地址访问
- 404
- 数据库
- 连接数据库
- 添加
- 删除
- 更新
- 查询
- 预处理
- 事务
- 模型
- 创建模型
- 实例化
- 插入数据
- 查询数据
- 修改数据
- 删除数据
- where条件
- field字段
- group分组
- order排序
- limit限制条数
- count统计
- avg平均数
- max最大值
- min最小值
- 链式操作
- 获取sql
- 视图
- 创建
- 传值
- 载入
- 函数
- 标签
- if
- foreach
- include
- 常量替换
- xss过滤
- 验证
- 创建验证类
- 验证规则
- 自定义错误
- 执行验证
- csrf防御
- 请求
- 请求相关名称
- 请求相关参数
- 请求传参
- 获取json数据
- 工具
- 文件上传
- 数据分页
- Url生成
- 缓存
- 模版编译
- 命令行
- 命令行控制器
- 数据库迁移