【WeCenter二次开发】你至少要知道的那些事


引言:
我仅仅是一个编程爱好者,遇到WeCenter的原因是想做个高考咨询的问答站。自己对PHP也只是略懂皮毛,更别说框架了。看了三天的ThinkPHP文档不太好消化。是WeCenter让我更好的理解了MVC的含义。


以下内容仅适合刚刚接触WeCenter准备二次开发的新同学,如果您是大神可以就此止步。如有说法不准确,请包涵,以下内容仅为个人理解。
=====================
 
 
1:框架结构有三层它们的作用及它们对应的文件夹如下:
控制器(程序流程,了解用户想要什么)--》APP
模型(数据库访问,提供用户需要的原材料)--》Model
视图(展示出来,也就是最后成品,由控制器放到用户面前)--》View
 
2:Wecenter的框架流程是什么样的?
控制器也就是app文件夹下的文件夹及文件,例如访问http://example.com/?/account/就是执行app/account/main.php 中 index_action 方法~再例如访问http://example.com/?/account/login/就是执行上述文件中login_action这个方法。
这(控制器函数/方法)里面会调用模型,即执行Model文件夹下的相关文件,访问数据库获得数据。例如$this->model('account')->get_user_info_by_uid($uid);就是在调用account这个用户模型,具体就是model/account.php里的相关方法~
调用完数据,要做的事情就是把数据展示出来。在控制器方法中一般都会以这样的语句结束:TPL::output("XXX");它所做的事情就是调用视图——我们通常所说的模板。
 
3:在调用模型之后输出视图,那么模型是怎么把数据传给视图的呢?
请注意这条语句:TPL::assign('AAA', 'BBB');,意思就是把BBB包装成AAA;BBB是由模型获得的数据,AAA是在视图展示的形式,在TPL::output("XXX");输出的模板中可通过<?php echo $this->AAA;?>来输出BBB这个值。
 
 Tip:研究BBB来充分发挥AAA的价值:
上文说到“把BBB包装成AAA”,其实AAA和BBB完全可以理解为等价。
前些日子活跃了一阵子,看到一个用户问,怎么显示加入时间。其实加入时间即注册时间,get_user_info_by_uid()返回的应该是用户信息绝大多数字段,或者就是用户表全部字段,我没有一一比较。同时还会有微信消息设置信息。我通过视图<?php print_r($this->user);//打印数组?>发现有reg_time这个字段的值,只要把时间戳转化成易理解的日期即可。
所以,在开发初期可以多打印几个数组,掌握成员组成,说不准什么时候就可以用到。默认模板只是把认为有必要展示的内容展示出来了,你想展示其他的,研究BBB的内容。


编后语:
第一次打这么多字,还没有插图。向全部读完的童鞋致敬!愿大家开发出自己的特色产品,愿WeCenter越来越好~




18 个评论

参与一下
嘿嘿

嘿嘿 回复 嘿嘿

参与一下
很用心的分享~!!
写得很不错,已推荐
创造性朝鲜族
WeCenter的设计是挺赞的,二次开发增加一个新的application挺方便的
赞!TPL::is_output('block/sidebar_recommend_users_topics.tpl.htm', 'home/index')这个是判断啥啊?
如果home/index模板中输出前面那一个则为真。我的理解是它在判断home/index模板中是否存在TPL::output("block/sidebar_recommend_users_topics.tpl.htm");这条语句。
谢谢老大~
谢谢,您用过wecenter的ucenter模块去和别的应用整合吗?比如discuz!
谢谢,您用过wecenter的ucenter模块去和别的应用整合吗?比如discuz!
感谢分享,能连载吗?
有时间会分享案例。项目正在做。。
感谢,提供二次开发服务吗?
工作忙,没时间做。
有没有小型开发团队或者个人推荐的呢?感谢。
回复测试
多谢多谢!又学到了

要回复文章请先登录注册