上次介紹了一下plain framework的基礎相關資料,今天該框架正式開源發布。項目的地址托管於github上,我相信大多數朋友都應該知道。今天要介紹的是該框架的目錄基本結構,以及分別在linux以及windows平台上安裝的例子。為了讓初學或者技術不是太扎實的朋友也能快速上手,我在這里一步步從開發環境的搭建講述到第一個比較完整的示例(網關服務器),每一步都是今日從空白的系統開始及時操作,由簡入深,如果大家不太明白請到交流群詢問。
更新日志
2015年1月10日 更新lnmp安裝腳本,兼容最新centos7以上系統,原網盤地址
源碼地址
https://github.com/viticm/plainframework1
目錄結構

框架基本介紹
地址:http://www.cnblogs.com/lianyue/p/3972492.html
參考手冊
參考手冊正在編寫過程中,會第一時間先同步到博客上,由於這些文章可能上不了首頁,感興趣的朋友不妨關注博客。
持續更新
如果框架發現了新的BUG或者有內容更新,將會持續同步到github項目上。
LINUX INSTALL
本次選用的linux系統為centos(6.5),你可以嘗試其他linux系統也可。安裝好linux系統,或者已經存在linux系統的情況下,那么我們開始搭建lnmp環境(web開發環境)。你可以在網絡上去尋找相關的資料,或者使用我提供的腳本進行安裝,不過php版本最好為5.4以上版本,這是為以后擴展預留。
首先你要確保你的系統中安裝了git,如果沒有安裝請用以下命令安裝(需聯網):
yum -y install git
其次將框架源碼安裝到你的開發目錄中,如:
cd ~ && mkdir work #進入用戶主目錄,並創建工作目錄 cd work && git clone https://github.com/viticm/plainframework1
1、使用框架內的腳本進行在線安裝(必須使用root權限安裝)
cd plainframework1/tools/script/linux/install/ && sudo sh install_web_develop.sh
2、使用提供的離線包及腳本進行離線安裝(必須使用root權限,沒有網絡的需注意以下說明)
可以到百度雲盤去取該離線安裝包鏈接:http://pan.baidu.com/s/1pJwnHn9 密碼:sa9h
將包放到/web目錄下並解壓,命令如下:
mkdir -p /web && cd /web && tar -xjvf web.tar.bz2
如果沒有網絡的情況下,你保證了安裝gcc、g++、cmake等必要的工具之后,設置腳本install_web_develop.sh的cDownload=on參數為off。
運行腳本進行安裝(大約30~50分鍾):
sh install_web_develop.sh #運行腳本
安裝成功截圖:
安裝成功后,再安裝框架的開發環境(使用root安裝):
cd tools/script/linux/install/ && sh install_environment.sh --full
開發環境成功截圖:

創建用戶數據庫(網關服務器用):
cd ~/work/plainframework1/tools/script/sql/ #進入腳本目錄 mysql -uroot -pmysql #進入mysql命令行 mysql> CREATE DATABASE sword_user DEFAULT CHARSET UTF8; //創建數據庫 mysql> source sword_user.sql; //執行腳本
配置數據源:
vim /etc/odbc.ini #編輯配置文件
最終的配置如下,其實可以不更改:
[sword_user] Driver = /usr/local/lib/mysqlodbc/libmyodbc5a.so DATABASE = sword_user DESCRIPTION = MySQL ODBC 5.3 Ansi Driver test SERVER = localhost UID = root PASSWORD = SOCKET = [sword_character] Driver = /usr/local/lib/mysqlodbc/libmyodbc5a.so DATABASE = sword_character DESCRIPTION = MySQL ODBC 5.3 Ansi Driver test SERVER = localhost UID = root PASSWORD = SOCKET =
編譯框架
框架使用了cmake等工具編譯,如果你使用了我提供的腳本那么編譯環境可以不用自己配置。
1、編譯依賴
cd ~/work/plainframework1/pf/dependencies/lua/ #lua cmake ./ make cd ~/work/plainframework1/pf/dependencies/iconv/ #iconv cmake ./ make
2、編譯框架核心
cd ~/work/plainframework1/pf/core/ cmake ./ make
編譯完整示例
完整示例中提供了一個網關服務器,其中用到了網絡、數據庫等核心接口。
cd ~/work/plainframework1/applications/gateway/ cmake ./ make
運行示例
1、拷貝運行庫
cd ~/work/plainframework1/applications/bin/ cp ~/work/plainframework1/pf/dependencies/dll/lib*.so ./ cp ~/work/plainframework1/pf/core/dll/libpf_core.so ./
2、配置文件
cd ~/work/plainframework1/applications/bin/
vim config/gateway_info.ini
[System] DBIP=localhost DBPort=3306 DBConnectionOrDBName=sword_user; 連接或數據庫名稱 DBUser=root DBPassword=mysql DBConnectorType=0; 連接類型 0 odbc, 1 mysql, 2 sqlserver, 3 mongodb(現在只實現了ODBC) EncryptDBPassword=0; 是否加密了數據庫密碼 NetListenIP=127.0.0.1; 網絡監聽IP NetListenPort=12680; 網絡監聽端口 NetConnectionMax=10240; 最大支持的網絡連接數量
3、運行
cd ~/work/plainframework1/applications/bin/
./gateway
RESULT:

WINDOWS INSTALL
在windows上安裝開發環境就相對比較容易了,因為不是使用源碼編譯安裝的。我在這里使用的是wamp作為web開發環境,而odbc則是使用系統自帶的odbc32位,如果你的機器不是64位的則沒有關系。如果你想將框架和應用編譯為64位則使用64位的ODBC,至於原因我就不解釋了。
源碼下載
如果用github朋友比較多的可以使用github的客戶端,打開源碼連接后:

PHP環境變量設置
將PHP的執行文件的路徑設置到你的環境變量中,為了運行框架中的一些腳本,比較重要。

編譯框架
由於vs編譯時對重復的文件名則不能正確的鏈接到目標中,而框架中則存在了許多重復的文件名,所以這里使用到了為windows編譯的工具。
路徑: tools\script\bat\rename_forvsbuild.bat
雙擊打開,然后輸入選項如下:

回車等待工具執行完成:

進入pf\core\scripts打開工程pf_core.vc9.sln進行編譯(目前只支持release編譯),當然你可以將此工程轉換為vs的其他版本。
編譯例子
同編譯框架一樣,例子的編譯也需要重寫項目文件。
打開tools\script\bat\rename_forvsbuild.bat

revert to standard是否還原為標准的,不用輸入,直接回車,第二次執行該操作時工程將自動還原。

打開工程文件applications\gateway\scripts\gateway.vc9.sln進行編譯。
安裝mysql的odbc driver
地址為:http://dev.mysql.com/downloads/connector/odbc/ 版本3.5以上的即可
創建數據庫
創建名為sword_user的數據庫,編碼設置為odbc,並在該數據庫下執行腳本tools\script\sql\sword_user.sql。
配置ODBC
由於我使用的是32位的應用,所以使用32位的ODBC,如圖:

添加你的mysql連接信息如下,連接名為sword_user:

運行示例
拷貝依賴和框架的動態庫到applications\bin目錄下。
依賴動態庫:pf\dependencies\dll\Release
框架動態庫:pf\core\dll\Release
保證mysql和數據庫成功的前提下運行gateway.exe
RESULT

成員招募(長期有效)
如果你也對開源知識比較感興趣,如果也對網絡應用或者網絡游戲感興趣,如果你也對該框架感興趣,你可以加入我們的QQ群(348477824)。
歡迎大家進群相互交流學習,同時也歡迎各位朋友對該框架供出自己的一份心力。
