# 1):變量命名
### 命名總則
QueryPHP 以匈牙利命名法為基本的命名規范,并有所簡化以滿足我們產品的設計。基本原則是:**變量名=屬性+類型+對象描述**,容易記憶容易理解,并且保證名字的連貫性。
通常來說取一個變量的類型的前 **1** 位或者前 **3** 位為屬性,其它類型:**量名=類型+對象描述**。
| 類型 | 命名規范 | 描述 |
| --- | --- | --- |
| 字符串 | $sMyName,$strMyName | string |
| 布爾值 | $bIsYes,$booIsYes | boolean |
| 數組 | $aMyArray , $arrMyArray | array |
| 對象實例 | $oMyObject,$objMyObject | object |
| 數字(浮點數、整型) | $nGoodsCount , $numGoodsCount | number |
| 浮點數 | $fMyName , $floMyName,$dMyName , $douMyName | float,double |
| 整型 | $iGoodsCount , $intGoodsCount | integer |
| 回調 | $cGetName , $calGetName | callback |
| 資源句柄 | $hMysqlConnect , $hanMysqlConnect,$rMysqlConnect , $resMysqlConnect | resource,handle |
| 混合類型 | $mArrayString , $mixArrayString | mixed |
| 其它類型 | $otherTest , $helloWorld | 其它類型,去掉屬性 |
> 注意:按照我們命名習慣書寫一個變量,如果這個變量的類型在中途變更,命名以第一個為準,防止重新創建變量。
~~~
$strName = 'Hello world';
$strName [] = $strName; // 轉換為數組,保持不變
~~~
### 常量 define
define 函數的第一個參數全部大寫,且以 "_" 分割,例如:
~~~
define('Q_VER', '4.0');
~~~
### 數組鍵值
數組的鍵值以 '_' 分割,不采用駝峰法
~~~
$arrData['first_name'] = 'Hello Xiaoniu';
~~~
# 2):命名空間
QueryPHP 基于 **PSR-4** 自動加載規范,并且注意如下規范,命名空間使用前必須先注冊:
* 目錄統一建議使用小寫(大寫也支持);
* 類文件統一以 .php 為后綴;
* 類的文件名均以命名空間定義,并且命名空間的路徑和類庫文件所在路徑一致;
* 類名和類文件名保持一致,統一采用小寫,以 _ 分隔;
~~~
/**
* 注冊框架命名空間
*/
Q::import ( 'Q', Q_PATH, [
'ignore' => [
'resource'
]
] );
~~~
# 3):方法或函數
QueryPHP 方法和函數均建議使用 **駝峰法** 來命名。
* 首字母小寫;
* 多個單詞間不使用間隔,除第一個單詞外,其他單詞首字母大寫;
~~~
// 函數
function myFunction ( ) {
echo 'Hello world';
}
// 類的方法
class demo {
function demoHello( ) {
echo 'Hello world';
}
}
~~~
# 4):數據庫
數據庫幾乎是所有應用的標準,命名也需要講究一下。
### 數據庫表名
* 表名均使用小寫字母;
* 表名字使用統一的前綴,且前綴不能為空
* 對于視圖,使用_view結尾,普通表不用加任何后綴;
* 對于多個單詞組成的表名,使用_間隔;
~~~
q_user
q_user_info
q_book_store_view
~~~
### 數據庫字段
* 表名均使用小寫字母;
* 表名字使用統一的前綴,且前綴不能為空
* 對于視圖,使用_v結尾,普通表不用加任何后綴;
* 對于多個單詞組成的表名,使用_間隔;
~~~
// 數據庫表
q_hello
// 字段
hello_id
hello_user
hello_user_name
~~~
# 5):注釋和其他
也許你注意到了,還有很多其它的比如注釋的書寫格式,這些東西大家可以看看源代碼借鑒一下。
- 關于 QueryPHP
- 獲取 QueryPHP
- 環境要求
- 許可協議 Free
- 執行流程 MVC
- 命名規范 $sName
- 目錄結構 DIR
- 單一入口 index.php
- 響應客戶端請求 URL
- 命名空間與自動載入 Autoload
- 路由
- 路由導入
- 批量導入
- 參數正則
- 分組定義
- 路由綁定
- 路由域名
- 分層控制器
- 默認和初始化APP
- 默認控制器和方法
- url 模式
- url 生成
- url 偽靜態
- url 重寫
- url 重定向
- 控制器綁定
- 方法器分層
- 控制器 __init
- 控制器方法交互
- 模板引擎語法
- C變量輸出 $sName
- C變量支持函數和方法 $sName|trim
- C快捷輸出 ~
- C標簽簡化 Css & Javascript
- C默認值 eq 三元運算符
- C變量運算符 +-
- 變量遞增遞減 ++--
- C循環數據 list
- N變量賦值 assign
- N循環數據 list
- N循環數據高級版 lists
- C循環數據 while
- N循環數據 while
- C循環數據 for
- N循環數據 for
- C條件判斷 if
- N條件判斷 if
- 標簽嵌套無限層級
- N循環流程 break & continue
- N使用 PHP 代碼
- N包含子模板 include
- J模板引擎 intro
- J條件判斷 if
- J循環數據 each
- J變量 & 表達式
- J變量支持函數和方法 hello|test
- J默認值 eq 三元運算符
- J框架前端組件 jquery.queryphp.js
- J前端 CSS 規范
- J前端 JS 規范
- 保護標簽自身 tagself
- 數據庫
- 數據庫配置
- 執行原生 sql 語句
- 數據庫事務
- 數據庫構造器 prefix
- 數據庫構造器 table
- 數據庫構造器 forceIndex
- 數據庫構造器 where
- 數據庫構造器 bind
- 數據庫構造器 join
- 數據庫構造器 union
- 數據庫構造器 orderBy
- 數據庫構造器 groupBy
- 數據庫構造器 having
- 數據庫構造器 distinct
- 數據庫構造器 aggregate
- 數據庫構造器 limit
- 數據庫構造器 forUpdate
- 數據庫構造器 columns
- 數據庫構造器 reset
- 數據庫集合查詢
- 數據庫查詢數據 get
- 數據庫查詢多條數據 getAll
- 數據庫查詢單條數據 getOne
- 數據庫查詢聚合查詢 aggregate
- 數據庫寫入數據 insert
- 數據庫寫入數據 insertAll
- 配置
- 配置格式
- 慣性配置
- 配置文件
- 讀取配置
- 設置配置
- 刪除配置
- 日志
- 日志配置參數
- 日志路徑
- 日志過濾器
- 日志處理器
- 緩存
- 緩存配置參數
- 緩存路徑
- 緩存指定時間
- COOKIE
- COOKIE 配置參數
- 開發調試
- 頁面 trace