CoreThink是一套輕量級(jí)WEB產(chǎn)品開發(fā)框架,CoreThink可輕松實(shí)現(xiàn)移動(dòng)互聯(lián)網(wǎng)時(shí)代支持多終端的輕量級(jí)WEB產(chǎn)品快速開發(fā)。系統(tǒng)功能采用模塊化開發(fā),內(nèi)置系統(tǒng)設(shè)置、分類管理、底部導(dǎo)航、數(shù)據(jù)備份、開發(fā)者工具(菜單管理、配置管理、數(shù)據(jù)字典、開發(fā)文檔、視頻教程)、用戶管理、部門管理、權(quán)限控制、內(nèi)容模型、模板標(biāo)簽、模版主題、郵件管理、云存儲(chǔ)、支付中心、插件擴(kuò)展等模塊,便于用戶靈活擴(kuò)展和二次開發(fā)。
CoreThink產(chǎn)品介紹:
框架簡(jiǎn)介
簡(jiǎn)單、輕量、高效
CoreThink是一套輕量級(jí)WEB產(chǎn)品開發(fā)框架,追求簡(jiǎn)單、高效、卓越。可輕松實(shí)現(xiàn)移動(dòng)互聯(lián)網(wǎng)時(shí)代支持多終端的輕量級(jí)WEB產(chǎn)品快速開發(fā)。
開源免費(fèi)
遵循Apache2開源協(xié)議
代碼遵循Apache2開源協(xié)議,并且免費(fèi)使用,對(duì)商業(yè)用戶友好。CoreThink將成為一面國(guó)產(chǎn)開源旗艦產(chǎn)品。
極易使用
容易上手
CoreThink 極易使用:沒有復(fù)雜的代碼和新生語法,原生TP語言直接調(diào)用即可。后臺(tái)Builder可快速擴(kuò)展功能無需編寫模版。
無限可能
想到做到
CoreThink 可以用來開發(fā)企業(yè)網(wǎng)站、門戶網(wǎng)站、多用戶博客、O2O商城、微信公眾號(hào)第三方平臺(tái),你想到的它都能辦到。
通俗文檔
通俗易懂
CoreThink 通俗文檔:文檔通俗易懂,盡量規(guī)避專業(yè)術(shù)語,努力用最白話的形式表述。
ThinkPHP構(gòu)建
大道至簡(jiǎn)
依托新版ThinkPHP的功能優(yōu)勢(shì)和命名空間的特性,官方七年磨一劍,用心打造。更高,更快,更強(qiáng)!
快速迭代
敏捷開發(fā)
CoreThink 快速迭代:第一時(shí)間提交新功能的代碼。當(dāng)然也歡迎大家一起貢獻(xiàn)代碼。
安裝教程:
CoreThink框架支持兩種安裝模式,第一種標(biāo)準(zhǔn)模式安裝屬于業(yè)內(nèi)比較通用的安裝方式,一路點(diǎn)擊下一步即可。第二種開發(fā)模式安裝適合在Paas平臺(tái)部署以及開發(fā)者在本地調(diào)試開發(fā)時(shí)采用。用戶可以結(jié)合自己的實(shí)際情況進(jìn)行選擇。
1.標(biāo)準(zhǔn)模式安裝
1)下載CoreThink源代碼,解壓縮至本地WEB服務(wù)器根目錄或者上傳至虛擬主機(jī)/VPS的WEB服務(wù)器網(wǎng)站跟目錄;
2)瀏覽器訪問主機(jī)IP或者域名進(jìn)入安裝界面,同意進(jìn)入下一步系統(tǒng)環(huán)境檢測(cè);
3)環(huán)境檢測(cè)如果全部通過則點(diǎn)擊下一步進(jìn)入?yún)?shù)設(shè)置,否則請(qǐng)先處理紅色✖️的項(xiàng)目;
4)填寫數(shù)據(jù)庫信息、管理員信息,點(diǎn)擊下一步開始安裝系統(tǒng),成功后將會(huì)提示。
2.開發(fā)模式安裝
1)請(qǐng)先了解Apache或者Nginx的環(huán)境變量配置;
2)下載CoreThink源代碼,解壓縮至WEB服務(wù)器根目錄;
3)自行將/Application/Install/Data/install.sql數(shù)據(jù)庫文件導(dǎo)入到即將使用的MySQL數(shù)據(jù)庫中;
4)參數(shù)配置
如果是本地開發(fā)配置Apache參考如下
DocumentRoot "/var/www" ServerName www.corethink.cn ErrorLog "/var/log/apache3/corethink_error_log" CustomLog "/var/log/apache3/corethink_access_log" commonOptions Indexes FollowSymLinks MultiViews AllowOverride All Order deny,allow Allow from all SetEnv CT_DEV_MODE true #開發(fā)模式開關(guān)開啟 SetEnv CT_DB_HOST 127.0.0.1 #數(shù)據(jù)庫IP地址 SetEnv CT_DB_NAME corethink #數(shù)據(jù)庫名稱 SetEnv CT_DB_USER root #數(shù)據(jù)庫用戶名 SetEnv CT_DB_PWD corethink #數(shù)據(jù)庫用戶密碼
如果是Paas平臺(tái)則配置類似下面這樣:
5)打開首頁訪問即可完成。
此部署方式適合于在PaaS平臺(tái)部署或者本地開發(fā)部署,能在進(jìn)行項(xiàng)目版本控制時(shí)保證配置文件不用改變。
系統(tǒng)設(shè)置:
在一個(gè)產(chǎn)品使用中,必不可少的是各種各樣的配置,比如網(wǎng)站的標(biāo)題、網(wǎng)站的SEO關(guān)鍵字、網(wǎng)站的LOGO等。ThinkPHP框架本身提供了配置文件的形式來集中管理各類配置的需求,在一般情況下(運(yùn)營(yíng)者了解ThinkPHP)基本滿足需求。然而考慮到現(xiàn)代的產(chǎn)品運(yùn)營(yíng)一般屬于專業(yè)運(yùn)營(yíng),很可能完全不懂技術(shù),這時(shí)候?qū)ο到y(tǒng)就提出了比較高的要求,一個(gè)現(xiàn)代的系統(tǒng)應(yīng)當(dāng)提供圖形化界面以供使用者設(shè)置某些參數(shù)。
做系統(tǒng)設(shè)置有兩種方案,一種在后臺(tái)提供設(shè)置界面,用戶修改配置后寫回ThinkPHP配置文件,第二種也是當(dāng)前本系統(tǒng)采用的方案,即:在數(shù)據(jù)庫建立一種系統(tǒng)配置表,用戶經(jīng)常需要修改的配置存儲(chǔ)到數(shù)據(jù)表里,當(dāng)系統(tǒng)接收到訪問請(qǐng)求時(shí),首先從數(shù)據(jù)庫讀取所有的配置再與配置文件的配置進(jìn)行合并,接下來再執(zhí)行正常的事務(wù)流程。實(shí)際流程如下圖:
相關(guān)實(shí)現(xiàn)方案如下:
1)修改配置
管理員在后臺(tái)修改網(wǎng)站標(biāo)題、網(wǎng)站描述、版權(quán)信息等配置后提交到系統(tǒng)。系統(tǒng)接收數(shù)據(jù)后保存到數(shù)據(jù)庫。
/** * 獲取某個(gè)分組的配置參數(shù) * @author jry <598821125@qq.com> */ public function group($tab = 1){ //根據(jù)分組獲取配置 $map['status'] = array('egt', '0'); //禁用和正常狀態(tài) $map['group'] = array('eq', $tab); $data_list = D('SystemConfig')->where($map)->order('id asc')->select(); //構(gòu)造表單名、解析options foreach($data_list as &$data){ $data['name'] = 'config['.$data['name'].']'; $data['options'] = parse_attr($data['options']); } //使用FormBuilder快速建立表單頁面。 $builder = new \Common\Builder\FormBuilder(); $builder->title('系統(tǒng)設(shè)置') //設(shè)置頁面標(biāo)題 ->SetTablist(C('CONFIG_GROUP_LIST')) //設(shè)置Tab按鈕列表 ->SetCurrentTab($tab) //設(shè)置當(dāng)前Tab ->setUrl(U('groupSave')) //設(shè)置表單提交地址 ->setExtraItems($data_list) //直接設(shè)置表單數(shù)據(jù) ->display(); } /** * 批量保存配置 * @author jry <598821125@qq.com> */ public function groupSave($config){ if($config && is_array($config)){ $config_object = D('SystemConfig'); foreach ($config as $name => $value){ $map = array('name' => $name); $config_object->where($map)->setField('value', $value); } } S('DB_CONFIG_DATA',null); $this->success('保存成功!'); }
2)系統(tǒng)獲取數(shù)據(jù)庫配置并于本地配置文件合并
這一步實(shí)際上是在AdminController中實(shí)現(xiàn)的,是繼登錄檢測(cè)、權(quán)限檢測(cè)之后的第三步。
//讀取數(shù)據(jù)庫中的配置 $config = S('DB_CONFIG_DATA'); if(!$config){ $config = D('SystemConfig')->lists(); $config['DEFAULT_THEME'] = ''; //后臺(tái)無模板主題 S('DB_CONFIG_DATA',$config); } C($config); //添加配置