phpwind(簡稱:pw)是一個基於PHP和MySQL的開源社區程序,是國內最受歡迎的通用型論壇程序之一。phpwind第一個版本ofstar發佈於2004年。目前phpwind項目品牌由阿里雲計算有限公司擁有,軟件全面開源免費。現已有累積超過100萬的網站採用phpwind產品,其中活躍網站近10萬。自2011年發佈PHPWind8.x系列版本以來,phpwind圍繞着提升社區內容價值和推進社區電子商務兩個大方向,開發單核心多模式的產品,實現新型的社區形態。今年籌備發佈的phpwind9.0將採用phpwind自主研發的Windframework框架並整合基於阿里云云計算架構的社區雲平臺應用中心,將爲未來的社區提供更豐富多樣的解決方案。
如何自定義開發PW9.0:
pw採用經典的MVC結構和企業級的分層架構,各個模塊和層次各司其職,耦合性低。下面簡單介紹常用目錄的作用
src/service/用於存放Model類
template/用於存放View類
src/applications/ 用於存放Controller類
M層都有srv,dm,dao等目錄
srv用於存放各種業務邏輯,比如發一個帖子,需要各種權限判斷之後才能插入
dm是數據字段映射以及簡單規則判斷,不明白沒關係
dao就是處理增改刪查的sql
另外還有一些scv,dm,dao目錄上的獨立文件,我們稱爲數據服務(ds),這是基礎的數據元服務層,相當於dao層的再包裝,只有ds才能調用dao裏的接口,這麼理解就對了。
1、 創建src/applications/cms/controller/IndexController.php
<?php Wind::import('LIB:base.PwBaseController'); class IndexController extends PwBaseController { /** * 這是首頁 通過index.php?m=cms訪問 * @see WindController::run() */ public function run() { $ds = Wekit::load('cms.PwCms'); $this->setOutput($ds->get(), 'content'); } /** * 這是內容頁 通過index.php?m=cms&a=read訪問 * Enter description here ... */ public function readAction() { } /** * 用於模塊的門戶機制安裝,調試完成後請刪除 通過index.php?m=cms&a=setup訪問 */ public function setupAction() { $srv = Wekit::load('design.srv.router.PwDesignRouter'); $srv->set('cms', 'index', 'run', 'cms首頁'); $srv->set('cms', 'index', 'read', 'cms閱讀頁','id'); //如果不需要單獨定製閱讀頁樣式(像論壇的版塊頁門戶編輯保存時的提醒),把id去掉 這裏假設閱讀頁參數爲id $this->showMessage('success'); } } ?>
2、創建 template/cms/index_run.htm,請使用門戶標準模板,不然進行不了門戶管理
下載地址:http://www.phpwind.net/read/2863370
<!doctype html> <html> <head> <template source='TPL:common.head' load='true' /> </head> <body> <pw-start/> <div class="wrap"> <template source='TPL:common.header' load='true' /> <!--如果要使用公共頭部,請加這一行--> <div class="main_wrap"> <pw-navigate/> <div class="cc"> <!-- 網頁設計區域開始 --> <pw-drag id="segment_drag"/> {$content} <!-- 網頁設計區域結束 --> </div> </div> <pw-footer/> </div> <script> Wind.use('jquery', 'global'); </script> <pw-end/> </body> </html>
3 創建 src/applications/cms/PwCms.php文件
<?php /** * 只有這個文件,才能使用dao裏的接口,請遵循這個規定 */ class PwCms { public function get() { return '我是內容123'; } public function getList() { return array( 1=>array('id'=>123, 'content'=>'我是內容123'), 2=>array('id'=>124, 'content'=>'我是內容124'), ); } } ?>
瀏覽器地址欄輸入http://localhost/index.php?m=cms&a=setup 提示安裝成功
再輸入http://localhost/index.php?m=cms