关于zentaoPHP框架

2009-03-29 21:40:00
王春生
92293
最后编辑:王春生 于 2014-08-07 14:49:15
简介:zentaophp框架简介。

一、zentaoPHP框架的缘起

2009年我们决定开始启动禅道项目管理软件的开发,编程语言自然选择了一直使用的PHP。但在开发框架的选择上,颇费了一番功夫。09年的时候,php5.2系列的版本oop的功能已经比较强大,市面上也出现了一大批的框架。比如cakephp, symfony, zend framework, codeignightor等等。仔细的研究这些框架之后,符合我们要求的是codeignightor这个框架,概念简单,文档丰富。但遗憾的是这个框架是基于php4面向过程的语法实现的,导致它的很多实现并不是很合理。考虑到我们后续产品的发展,我们决定自己来开发一款框架。于是2009年3月1日,发布了第一个版本。

二、zentaophp框架的特点

zentaophp框架的定位主要是b/s架构的应用开发,它不是一款全能型的框架,主要的目的还是服务我们团队自己的产品研发。因此和其他的框架相比,它有很强的特点:


代码简单

框架的核心只有四个文件,分别为调度类router.class.php,control类control.class.php,model类model.class.php和工具类helper.class.php。代码的实现也比较简单,有能力的开发者可以很容易在框架基础上进行扩展,增加自己的功能。


性能良好

zentaoPHP框架在实现过程中,十分重视性能。在保证功能的前提下面,尽可能的提升程序执行效率。


结构清晰

使用ZenTaoPHP框架来开发应用,其目录结构简单清晰,维护起来非常的方便。


开发友好

框架,首先是一个框,把你框在了里面。所以很多框架会有很多的约定,你要怎样,你要怎样。还有很多隐形的约定,比如你要在你的代码里面写很多的xxxx之类的东东。我觉得一个好的框架在实现功能的前提下,应当尽量兼顾开发人员之前的开发习惯,所以zentaoPHP框架在这方面花了大量的力气:


中性命名:框架实现时,没有出现什么zentao之类的命名,完全是中性的命名:router, control, model, config, lang。

配置对象化: 配置项可以通过对象的方式来引用,$config->db->user,要比$config['db']['user']简洁顺畅的多。

相对路径包含:所有的路径都可以用相对路径来进行包含,这样可以很清晰的知道目录结构和代码之间的关系。

评论列表
啼笑 2017-06-20 10:43:17
显示页面也是php页面?哪个这种命名是story.html.php是什么意思啊
王春生 2017-06-21 08:12:48
.html代表输出的格式。比如可以有story.xml.php story.pdf.php,懂了吗?
Wang 2017-05-04 21:09:56
Model之间如何相互调用,比如在blog里面调用user里面的
王春生 2017-05-08 08:58:47
$this->loadModel
wu 2017-04-16 22:31:34
@王春生 刚装了zentaophp框架,遇到两个问题:
1 配置里设置的默认语言没有起作用
2 自带的common中“简体”和“EN”切换按钮不起作用。
wu 2017-04-16 23:21:26
找到原因了。
function switchLang(switcher)
{
$.cookie('lang', $(switcher).data('lang'));
location.href = location.href;
}
我本地调试用的是chrome。。。。。
JJ 2017-04-10 16:57:28
导出时候,本地Excel是正常的,http传送后就乱码了,是什么个情况呢?
王春生 2017-04-11 08:25:41
看看是否有额外的输出。
JJ 2017-04-06 10:35:09
单页面多字段对应附件上传没实现么?
王春生 2017-04-06 13:05:28
可以自己开发实现。
JJ 2017-03-23 17:16:53
页面操作怎么设置session?
比如$this->session->taskQueryCondition后面的taskQueryCondition怎么定义?
王春生 2017-03-24 09:48:38
$this->session->set('key', 'value');
JJ 2017-04-07 16:30:05
没看到有对$this->session->taskQueryCondition的set动作呢?有什么规则么?后面Condition是固定的么?
王春生 2017-04-10 08:25:22
在browse方法里面设置的。
肖龙 2017-03-02 11:35:20
为什么我映射模板,点进去是空白页面呢.错误在哪啊
王春生 2017-03-09 09:12:52
把debug打开,看看有什么错误。
shxuabc 2016-12-30 14:09:00
请问$this->block->printRegion中的block在哪里初始化的?
王春生 2017-01-03 09:09:39
control里面初始化的。
tank 2016-11-11 14:27:36
为什么在使用试用版时,apache里设置的IP地址会自动还原成127.0.0.1呢?
王春生 2016-11-14 09:16:55
具体描述下问题。
张非 2016-11-07 17:19:30
我想在产品视图下的需求列表中增加一列“测试用例”,请教下春生,怎么修改代码最简单,谢谢!
1/5
发表评论
评论通过审核后显示。