記錄一下陀螺匠OA系統(tǒng)開發(fā)的過程和所需要的工具,通過這篇文章你可以學(xué)會陀螺匠OA系統(tǒng)的二次開發(fā)。
【產(chǎn)品名稱】:陀螺匠OA
【產(chǎn)品版本】:v1.8商業(yè)版,開源版或其他版本大同小異
【部署方式】:linux寶塔面板
【部署環(huán)境】:線上環(huán)境
【php版本】:8.0
【Mysql版本】:5.7
【使用終端】: PC后臺
【開發(fā)工具】:
工具 作用
VSCODE:代碼編輯 官方下載地址
Windsurf: 簡單理解為VSCODE的AI版本,和VSCODE二選一 官方下載地址
SFtp插件:代碼同步
FinalShell:日志查看 官方下載地址
Git:代碼版本控制(可選)官方下載地址
【開發(fā)概述】:
1. 首先按照官方的文檔(安裝文檔),安裝好陀螺匠。保證能夠正常訪問。
2. 把線上版本的陀螺匠源代碼解壓到本地,用VSCODE打開。
3. 安裝VSCODE的SFTP插件。需要準(zhǔn)備云服務(wù)器的SSH root賬號信息(非root也可以的)。
4. 用Log輸出日志用來調(diào)試,用FinalShell來查看日志。
5. 按照你要修改的需求,去修改代碼,設(shè)置調(diào)試日志輸出,實(shí)時(shí)看日志輸出來判斷代碼的正確性,直到完成開發(fā)。
6.可選用Git來管理代碼版本。
【關(guān)鍵信息】:
1. 本地代碼和云端代碼同步是通過VSCODE的Sftp插件來同步,需要SSH登錄信息,云端目錄要注意對應(yīng)好本地目錄。
2. 云端日志是按照時(shí)間和日期來存儲的,一天一個(gè)文件,比如oa.xxx.com/storage/logs/2025/05/service-05.log,2025和05以及service-05當(dāng)中的05都是根據(jù)日期變化的。如果當(dāng)天沒有日志,目錄和文件就不存在。
3. 日志輸出用的是Illuminate\Support\Facades\Log類,輸出方式是Log::debug("Hello Tuoluojiang")。
【開發(fā)實(shí)戰(zhàn)】:
安裝好前面的開發(fā)工具。
云端部署目錄,我這里是 /www/wwwroot/test.xxxx.com ,這個(gè)后面會用到:
把云端的部署代碼打包成一個(gè)壓縮包,然后下載下來,解壓放到本地。因?yàn)椴渴鸷笈渲梦募懈膭?dòng),所以用線上的代碼壓縮包能避免線上配置文件被覆蓋。
比如我的是在 D://Projects//oa.xxx.com :
在這里我會習(xí)慣性的用Git來管理項(xiàng)目的版本修改。(可選)
打開本地項(xiàng)目的文件目錄,比如 D://Projects//oa.xxx.com ,然后在地址欄輸入 cmd , 打開命令行窗口,執(zhí)行命令:
git init .
git add *
git commit -m "frist version"
然后用VSCODE(或者Windsurf)打開項(xiàng)目目錄。
接下來安裝SFTP插件,用來實(shí)時(shí)同步本地的修改到云端服務(wù)器。
在VSCODE左邊插件欄搜索sftp,建議選擇作者是Natizyskunk的,點(diǎn)擊install。
安裝好sftp插件后,回到項(xiàng)目目錄按Ctrl+Shift+P快捷鍵,選擇并點(diǎn)擊 SFTP: Config。
配置文件內(nèi)容參考如下,替換成你自己的實(shí)際信息,然后保存:
{
"name": "Test Server",
"host": "8.140.xxx.xxx",
"protocol": "sftp",
"port": 22,
"username": "root",
"password": "xxxxxxxx",
"remotePath": "/www/wwwroot/oa.xxxx.com/",
"uploadOnSave": true
}
測試同步是否正確:
找到項(xiàng)目里面的.env.example文件,修改APP_NAME為TuoluojiangDev2025,按Ctrl+S保存代碼,如果SFTP的uploadOnSave設(shè)置為False,需要右鍵點(diǎn)擊這個(gè)文件,然后選擇Upload File手動(dòng)上傳。然后去云端對應(yīng)的目錄找到.env.example文件看看是否已經(jīng)修改。
看截圖我這里云端是同步了本地的修改,如果沒有同步請檢查配置文件是否正確。
測試一下日志輸出。假設(shè)我們要在獲取合同列表這里做些修改,我們這里就只增加一條測試輸出來代替。找到app\Http\Controller\AdminApi\Client\ContractController.php文件。在文件頂部增加一條引用:use Illuminate\Support\Facades\Log。
找到index函數(shù),并且在函數(shù)底部增加一條日志輸出:
Log::debug("Hello Tuoluojiang.");
然后保存代碼,讓本地代碼同步到云端。然后再去刷新一次客戶>合同管理。
接下來檢查日志的輸出。用剛才SFTP的配置信息,配置好FinallShell。也可以用其他SSH鏈接客戶端或者直接用寶塔面板的命令行終端,但是寶塔的命令行畢竟是網(wǎng)頁版的,臨時(shí)用可以,如果開發(fā)一個(gè)大功能,還是穩(wěn)定用FinalShell方便點(diǎn)。
檢驗(yàn)是否成功。點(diǎn)擊剛才創(chuàng)建的鏈接,如果能正常鏈接,看到的是如下界面。不然會有錯(cuò)誤提示,請按照提示找下原因。
然后我們用cd命令切換到陀螺匠的日志輸出目錄,完整命令如下:
cd /www/wwwroot/oa.xxx.com/storage/logs/2025/05
ls
tail -f service-05.log
請注意這里的目錄是動(dòng)態(tài)創(chuàng)建的,比如storage/logs/2025/05,2025是今年的年份,05是當(dāng)前的月份,如果沒有日志,2025和05這兩個(gè)目錄是空的。service-05.log這個(gè)文件的05是當(dāng)天的日期,我這里今天是2025年5月5號,如果今天是12號,應(yīng)該是tail -f service-12.log以此類推。如果看到Hello Tuoluojiang的輸出,說明我們的日志添加成功。
好了,到這里,恭喜你!后端代碼就可以正常進(jìn)行開發(fā)了。
一般修改都是要配置前端一起改的,篇幅有限前端修改就暫時(shí)不寫了,有需要的朋友請留言:前端修改教程,超過5個(gè)朋友安排。
個(gè)人水平有限,如果錯(cuò)誤或者更好的開發(fā)工具協(xié)同方案,歡迎指出和交流。有疑問也歡迎留言。
最后,介紹一下自己:我是陀螺匠官方服務(wù)商,承接陀螺匠的二次開發(fā)業(yè)務(wù),有需要深度定制OA系統(tǒng)的公司歡迎聯(lián)系。目前已收陀螺匠定制開發(fā)費(fèi)用2萬+。
如果這篇文章對你有幫助,請點(diǎn)個(gè)贊、留個(gè)言讓我知道,也讓更多人看到,謝謝!