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