CRMEB PRO 手冊(cè)

CRMEB PRO

運(yùn)行環(huán)境要求PHP7.1 ~ 7.3。

開(kāi)發(fā)規(guī)范

命名規(guī)范

ThinkPHP6.0遵循PSR-2命名規(guī)范和PSR-4自動(dòng)加載規(guī)范来涨,并且注意如下規(guī)范:

  1. 目錄和文件
  2. 目錄使用小寫(xiě)+下劃線;
  3. 類(lèi)庫(kù)启盛、函數(shù)文件統(tǒng)一以.php為后綴;
  4. 類(lèi)的文件名均以命名空間定義技羔,并且命名空間的路徑和類(lèi)庫(kù)文件所在路徑一致僵闯;
  5. 類(lèi)(包含接口和Trait)文件采用駝峰法命名(首字母大寫(xiě)),其它文件采用小寫(xiě)+下劃線命名藤滥;
  6. 類(lèi)名(包括接口和Trait)和文件名保持一致鳖粟,統(tǒng)一采用駝峰法命名(首字母大寫(xiě));

函數(shù)和類(lèi)拙绊、屬性命名

  1. 類(lèi)的命名采用駝峰法(首字母大寫(xiě))向图,例如 User、UserType标沪;
  2. common函數(shù)的命名使用小寫(xiě)字母和下劃線(小寫(xiě)字母開(kāi)頭)的方式榄攀,例如 get_client_ip;
  3. 控制器里面的方法使用小寫(xiě)字母和下劃線(小寫(xiě)字母開(kāi)頭)的方式金句,例如 get_client_ip
  4. 方法的命名使用駝峰法(首字母小寫(xiě))檩赢,例如 getUserName;
  5. 屬性的命名使用駝峰法(首字母小寫(xiě))违寞,例如 tableName贞瞒、instance;
  6. 特例:以雙下劃線__打頭的函數(shù)或方法作為魔術(shù)方法趁曼,例如 __call 和 __autoload军浆;

常量和配置

  1. 常量以大寫(xiě)字母和下劃線命名,例如 APP_PATH挡闰;
  2. 配置參數(shù)以小寫(xiě)字母和下劃線命名乒融,例如 url_route_on 和url_convert;
  3. 環(huán)境變量定義使用大寫(xiě)字母和下劃線命名,例如APP_DEBUG簇抵;

數(shù)據(jù)表和字段

  1. 數(shù)據(jù)表和字段采用小寫(xiě)加下劃線方式命名庆杜,并注意字段名不要以下劃線開(kāi)頭,例如 think_user 表和 user_name字段碟摆,不建議使用駝峰和中文作為數(shù)據(jù)表及字段命名

注意:請(qǐng)理解并盡量遵循以上命名規(guī)范晃财,可以減少在開(kāi)發(fā)過(guò)程中出現(xiàn)不必要的錯(cuò)誤

語(yǔ)法規(guī)范

  1. 盡量使用php7新語(yǔ)法
  2. 每個(gè) namespace 命名空間聲明語(yǔ)句和 use 聲明語(yǔ)句塊后面,必須 插入一個(gè)空白行
  3. 類(lèi)的開(kāi)始花括號(hào)({) 必須 寫(xiě)在類(lèi)聲明后自成一行典蜕,結(jié)束花括號(hào)(})也 必須 寫(xiě)在類(lèi)主體后自成一行
  4. 方法的開(kāi)始花括號(hào)({) 必須 寫(xiě)在函數(shù)聲明后自成一行断盛,結(jié)束花括號(hào)(})也 必須 寫(xiě)在函數(shù)主體后自成一行。
  5. 類(lèi)的屬性和方法 必須 添加訪問(wèn)修飾符(private愉舔、protected 以及 public)钢猛,abstract 以及 final 必須 聲明在訪問(wèn)修飾符之前,而 static 必須 聲明在訪問(wèn)修飾符之后
  6. 控制結(jié)構(gòu)的關(guān)鍵字后 必須 要有一個(gè)空格符轩缤,而調(diào)用方法或函數(shù)時(shí)則 一定不可 有
  7. 控制結(jié)構(gòu)的開(kāi)始花括號(hào)({) 必須 寫(xiě)在聲明的同一行命迈,而結(jié)束花括號(hào)(}) 必須 寫(xiě)在主體后自成一行
  8. 純 PHP 代碼文件 必須 省略最后的 ?> 結(jié)束標(biāo)簽
  9. 所有方法,類(lèi)火的,控制器類(lèi)壶愤,都 必須 添加訪問(wèn)修飾符
    
    /**
     * 中文注釋
     * @param string $str 聲明類(lèi)型
     * @param array $arr
     * @return bool
     */
    public function action(string $str, array $arr)
    {
         return true;
    }
    
  10. 參數(shù)列表中,每個(gè)逗號(hào)后面 必須 要有一個(gè)空格馏鹤,而逗號(hào)前面 一定不可 有空格
     function foo($arg1, &$arg2, $arg3 = [])
     {
            // method body
     }
    
  11. 參數(shù) 可以 分列成多行征椒,此時(shí)包括第一個(gè)參數(shù)在內(nèi)的每個(gè)參數(shù)都 盡量 單獨(dú)成行。
    <?php
    $foo->bar(
        $longArgument,
        $longerArgument,
        $muchLongerArgument
    );
    
  12. 標(biāo)準(zhǔn)的 if 結(jié)構(gòu)如下代碼所示湃累,請(qǐng)留意「括號(hào)」勃救、「空格」以及「花括號(hào)」的位置,
    注意 else 和 elseif 都與前面的結(jié)束花括號(hào)在同一行
    <?php
    if ($expr1) {
        // if body
    } elseif ($expr2) {
        // elseif body
    } else {
        // else body;
    }
    
  13. 賦值等號(hào)前后必須加空格符
    <?php
    $arr = [];
    

PHP 7.1+ 常用新語(yǔ)法

  1. 三元運(yùn)算符
    <?php
    
    $arr = ['crmeb'=>true];
    之前
    echo isset($arr['crmeb']) ? $arr['crmeb'] : '';
    之后
    echo $arr['crmeb'] ?? '';
    
  2. define() 定義常量數(shù)組
<?php
 define('ARR',['a','b']);
  1. 命名空間優(yōu)化
 <?php
 //PHP7之前語(yǔ)法
 use FooLibrary\Bar\Baz\ClassA; 
 use FooLibrary\Bar\Baz\ClassB; 
 // PHP7新語(yǔ)法寫(xiě)法 
 use FooLibrary\Bar\Baz\{ ClassA, ClassB};
 

CRMEB PRO規(guī)范

  1. 所有控制器繼承app\adminapi\controller\AuthController類(lèi)
  2. 所有數(shù)據(jù)驗(yàn)證放在模塊下的 validates 目錄下
  3. JSON返回使用父級(jí) AuthController類(lèi)中的success 和 fail
  4. 錯(cuò)誤判斷拋出異常治力,由一個(gè)錯(cuò)誤類(lèi)統(tǒng)一控制輸出
    <?php
    
        throw new AuthException('錯(cuò)誤信息',400);
    
  5. 錯(cuò)誤碼和錯(cuò)誤提示語(yǔ)應(yīng)該統(tǒng)一管理蒙秒,方便切換多語(yǔ)言
  6. 數(shù)據(jù)庫(kù)操作使用模型類(lèi),不能使用Db::table()
  7. 獲取表單數(shù)據(jù)使用 crmeb\services\UtilService
    <?php
    use crmeb\services\UtilService;
    
    //獲取提交的數(shù)據(jù)琴许,并以二維數(shù)組形式返回
    $arr = UtilService::getMore([
        'name',
        'nickname'
    ]);
    //獲取提交的數(shù)據(jù)税肪,并以二維數(shù)組形式返回并附加默認(rèn)值
    $arr = UtilService::getMore([
       ['name','123'],
       ['nickname','0']
    ]);
    //獲取提交的數(shù)據(jù),并以一維數(shù)組形式返回并附加默認(rèn)值
    [$name, $nickname] = UtilService::getMore([
       ['name','123'],
       ['nickname','0']
    ],null,true);
    
  8. 所有控制器類(lèi)命令和表名對(duì)應(yīng),按照大駝峰命名規(guī)范
  9. 所有文件夾命名按照小寫(xiě)字母加下劃線定義
  10. 所有屬性名榜田,變量名盡量遵守小駝峰命名規(guī)范
  11. 復(fù)雜邏輯益兄,多狀態(tài)應(yīng)適當(dāng)添加行內(nèi)注釋

AdminApi目錄結(jié)構(gòu)詳細(xì)說(shuō)明

  adminapi
    ├─ config 配置文件存放
    ├─ controller 控制器文件存放
    │    ├─ v1 版本號(hào)
    │    │    ├─ product 產(chǎn)品管理
    │    │    ├─ user 用戶管理
    │    │    ├─ order 系統(tǒng)訂單管理
    │    │    ├─ setting 系統(tǒng)設(shè)置維護(hù) 系統(tǒng)權(quán)限管理、系統(tǒng)菜單管理 客服管理
    │    │    ├─ chat 客服管理(列表箭券,添加净捅,刪除,編輯)
    │    │    ├─ application 各個(gè)應(yīng)用模塊功能管理公眾號(hào)辩块、小程序蛔六、支付寶荆永、百度小程序、今日頭條小程序
    │    │    ├─ system 系統(tǒng)更新日志 數(shù)據(jù)庫(kù)管理
    │    │    ├─ finance  財(cái)務(wù)管理
    │    │    ├─ agent 分銷(xiāo)管理
    │    │    ├─ marketing 優(yōu)惠券国章、積分具钥、拼團(tuán)、砍價(jià)液兽、秒殺
    │    │    ├─ echarts 數(shù)據(jù)統(tǒng)計(jì)分析
    │    │    ├─ notification  消息通知管理骂删、模版消息(列表,通知四啰,添加宁玫,編輯)、短信
    │    │    ├─ file 附件文件管理
    │    │    ├─ freight 運(yùn)費(fèi)模版管理 物流公司
    │    │    ├─ merchant 商戶管理
    │    │    ├─ widget 組件 小插件
    │    │    └─ cms 文章管理
    │    ├─  AuthController.php  所有控制器繼承類(lèi)
    │    ├─  CommonApi.php 公共接口
    │    └─ Login.php 登陸接口
    ├─ lang 語(yǔ)言包
    │    └─ zh-cn.php 中文語(yǔ)言包
    ├─ validates 數(shù)據(jù)驗(yàn)證目錄
    ├─ AdminApiExceptionHandle.php 錯(cuò)誤捕獲
    ├─ common.php 公共函數(shù)存放處
    ├─ event.php 事件掛載
    └─ provider.php 容器

主要特性

開(kāi)源無(wú)加密

源碼開(kāi)源無(wú)加密柑晒,有詳細(xì)的代碼注釋?zhuān)型暾到y(tǒng)手冊(cè)

TP6框架

使用最新的 ThinkPHP 6.0框架開(kāi)發(fā)

前端采用Vue CLI框架

前端使用Vue CLI框架nodejs打包欧瘪,頁(yè)面加載更流暢,用戶體驗(yàn)更好

標(biāo)準(zhǔn)接口

標(biāo)準(zhǔn)接口匙赞、前后端分離佛掖,二次開(kāi)發(fā)更方便

支持隊(duì)列

降低流量高峰,解除耦合涌庭,高可用

長(zhǎng)連接

減少CPU及內(nèi)存使用及網(wǎng)絡(luò)堵塞苦囱,減少請(qǐng)求響應(yīng)時(shí)長(zhǎng)

無(wú)縫事件機(jī)制

行為擴(kuò)展更方便,方便二次開(kāi)發(fā)

后臺(tái)快速生成表單

后臺(tái)應(yīng)用form-builder 無(wú)需寫(xiě)頁(yè)面快速增刪改查

數(shù)據(jù)表格導(dǎo)出

PHPExcel數(shù)據(jù)導(dǎo)出,導(dǎo)出表格更加美觀可視脾猛;

數(shù)據(jù)統(tǒng)計(jì)分析

后臺(tái)使用ECharts圖表統(tǒng)計(jì),實(shí)現(xiàn)用戶鱼鸠、產(chǎn)品猛拴、訂單、資金等統(tǒng)計(jì)分析

強(qiáng)大的后臺(tái)權(quán)限管理

后臺(tái)多種角色蚀狰、多重身份權(quán)限管理愉昆,權(quán)限可以控制到每一步操作

一件安裝

自動(dòng)檢查系統(tǒng)環(huán)境一鍵安裝

安裝

一鍵安裝

上傳你的代碼,站點(diǎn)入口目錄設(shè)置/public
在瀏覽器中輸入你的域名或IP(例如:www.yourdomain.com),
安裝程序會(huì)自動(dòng)執(zhí)行安裝麻蹋。期間系統(tǒng)會(huì)提醒你輸入數(shù)據(jù)庫(kù)信息以完成安裝跛溉,安裝完成后建議刪除install目錄下index.php文件或?qū)⑵涓拿?/p>

后臺(tái)訪問(wèn)地址:
1.域名/admin
2.域名/index.php/admin
3.域名/index.php?s=/admin
公眾號(hào)和H5首頁(yè)訪問(wèn)地址:
1.域名/
提示:正常訪問(wèn)是第一中模式,第一種訪問(wèn)不了請(qǐng)檢測(cè)URL重寫(xiě)是否配置好
安裝過(guò)程中請(qǐng)牢記您的賬號(hào)密碼扮授!

重新安裝

  1. 清除數(shù)據(jù)庫(kù)
  2. 刪除/public/install/install.lock 文件

手動(dòng)安裝

1.創(chuàng)建數(shù)據(jù)庫(kù)芳室,倒入數(shù)據(jù)庫(kù)文件
數(shù)據(jù)庫(kù)文件目錄/public/install/crmeb.sql
2.修改數(shù)據(jù)庫(kù)連接文件
配置文件路徑/.env

APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1 #數(shù)據(jù)庫(kù)連接地址
DATABASE = test #數(shù)據(jù)庫(kù)名稱(chēng)
USERNAME = username #數(shù)據(jù)庫(kù)登錄賬號(hào)
PASSWORD = password #數(shù)據(jù)庫(kù)登錄密碼
HOSTPORT = 3306 #數(shù)據(jù)庫(kù)端口
CHARSET = utf8
DEBUG = true

[LANG]
default_lang = zh-cn

3.修改目錄權(quán)限(linux系統(tǒng))777
/public
/runtime
4.后臺(tái)登錄:
http://域名/admin
默認(rèn)賬號(hào):admin 密碼:crmeb.com

定時(shí)任務(wù)

在自動(dòng)收貨,庫(kù)存預(yù)警等功能使用到

php think timer [ status ] [ --d ]

參數(shù)

  • status: 狀態(tài)
    • start: 啟動(dòng)
    • stop: 關(guān)閉
    • restart: 重啟
  • --d : 后臺(tái)執(zhí)行

長(zhǎng)連接服務(wù)

在h5聊天,后臺(tái)管理員消息通知等功能使用到

php think workerman [ status ] [ server ] [ --d ]

windows環(huán)境下需要分三步執(zhí)行

# 內(nèi)部通訊服務(wù)
php think workerman start channel
# h5端聊天服務(wù)
php think workerman start chat
# 后臺(tái)管理員通知
php think workerman start admin

參數(shù)

  • status: 狀態(tài)

    • start: 啟動(dòng)
    • stop: 關(guān)閉
    • restart: 重啟
  • server: 服務(wù) (windows)

    • channel: 內(nèi)部通訊
    • chat: h5
    • admin: 后臺(tái)
  • --d : 后臺(tái)執(zhí)行

文檔

使用手冊(cè)
TP6開(kāi)發(fā)手冊(cè)

參與開(kāi)發(fā)

請(qǐng)參閱 CRMEB

版權(quán)信息

本項(xiàng)目包含的第三方源碼和二進(jìn)制文件之版權(quán)信息另行標(biāo)注刹勃。

版權(quán)所有Copyright ? 2017-2019 by CRMEB (http://www.crmeb.com)

All rights reserved堪侯。

CRMEB? 商標(biāo)和著作權(quán)所有者為西安眾邦網(wǎng)絡(luò)科技有限公司。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荔仁,一起剝皮案震驚了整個(gè)濱河市伍宦,隨后出現(xiàn)的幾起案子芽死,更是在濱河造成了極大的恐慌,老刑警劉巖次洼,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件关贵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡卖毁,警方通過(guò)查閱死者的電腦和手機(jī)揖曾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)势篡,“玉大人翩肌,你說(shuō)我怎么就攤上這事〗疲” “怎么了念祭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)碍侦。 經(jīng)常有香客問(wèn)我粱坤,道長(zhǎng),這世上最難降的妖魔是什么瓷产? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任站玄,我火速辦了婚禮,結(jié)果婚禮上濒旦,老公的妹妹穿的比我還像新娘株旷。我一直安慰自己,他們只是感情好尔邓,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布晾剖。 她就那樣靜靜地躺著,像睡著了一般梯嗽。 火紅的嫁衣襯著肌膚如雪齿尽。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天灯节,我揣著相機(jī)與錄音循头,去河邊找鬼。 笑死炎疆,一個(gè)胖子當(dāng)著我的面吹牛卡骂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播磷雇,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼偿警,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了唯笙?” 一聲冷哼從身側(cè)響起螟蒸,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤盒使,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后七嫌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體少办,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年诵原,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了英妓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绍赛,死狀恐怖蔓纠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吗蚌,我是刑警寧澤腿倚,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站蚯妇,受9級(jí)特大地震影響敷燎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜箩言,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一硬贯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧陨收,春花似錦饭豹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至菲饼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間列赎,已是汗流浹背宏悦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留包吝,地道東北人饼煞。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像诗越,于是被迫代替她去往敵國(guó)和親砖瞧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361