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
轉載于:https://blog.51cto.com/webcrawler/1200411