zentaoPHP3.0版本发布:中英文注释,框架核心可扩展,功能增加开关选项

2016-08-18 13:00:00
王春生
原创
3889

关于zentaoPHP框架

zentaoPHP是易软天创自己开发的一款PHP框架,主要目的是为了满足我们自身的产品研发需求。和其他的框架相比,zentaoPHP更注重框架的可维护性、性能良好、对开发人员的友好、应用的可扩展性等特性。

  • 代码简单:核心文件只有四个:router, control, model和helper。
  • 中性命名:命名全部中性化,比如router,不用什么 zentaoRoot。
  • 配置对象化:$this->config->db->host,比$config['db']['hosts']书写起来要流畅。
  • 相对路径包含:根据文件相对路径关系来包含,便于开发者了解路径关系。
  • 单一入口:所有的请求都经由一个index.php来进行转发,方便进行集中的控制。
  • 多种路径:支持静态URL和GET方式。
  • 多语言支持:每种语种独立的语言配置文件,框架自动切换,模板中直接引用。
  • 原生态SQL拼装:$this->dao->select('*')->from(table)->where('id')->gt(10)->orderBy('id')->fetchAll();
  • 无需路由配置:在url重写环境中,无需配置即可获得良好的路径结构。/article/view/123.html
  • 超方便全局变量引用:$this->post->userName $this->server->remote_addr
  • 最强大的扩展机制:框架核心可扩展,类库,control, model, view, config, lang都可以扩展。

我们自己的使用经验

  • zentaoPHP框架很好的支撑了我们三款开源产品的开发(禅道项目蝉知建站然之协同
  • zentaoPHP框架很好的支持了我们十几个支持网站和SAAS应用。
  • zentaoPHP框架很好的解决了客户二次开发和我们主干代码同步升级的问题。
  • 去年PHP7发布之后,框架只修改了一行代码就无缝的迁移到了PHP7版本。

3.0版本主要的更新

  • 双语注释:之前的代码是用英语注释,现在把中文注释都加上了(囧)。
  • 框架核心可以扩展:将原来的router这些核心类改为了baseRouter,开发者可以自己对框架核心进行扩展。
  • 是否自动链接数据库:$config->framework->autoConnectDB
  • 多语言功能增加开关:可以通过$config->framework->multiLang来设定是否使用多语言。
  • 是否启用多风格功能:$config->framework->multTheme
  • 多站点功能增加开关:$config->framework->multiSite来设定是否启用多站点功能。
  • 扩展功能开关:$config->framework->extensionLevel:0,无扩展,1,共用扩展,2,每个站点可单独扩展。
  • 增加了安全过滤机制:过滤非法变量名、变量值、XSS防护,附件加强安全,表单内容做标准化等安全措施。
  • dao增加了缓存机制和自定义sql调用机制。$this->dao->query($sql)->fetchAll();

下载:https://github.com/easysoft/zentaophp/archive/zentaophp_3.0_stable_20160818.zip

代码:https://github.com/easysoft/zentaophp

文档:http://devel.cnezsoft.com

评论列表
东风 2017-02-07 11:49:21
换个下载地址吧 太慢了。用国内的
CHEN E 2016-12-31 09:12:48
框架支持分库分表吗
王春生 2017-01-03 09:10:29
可以支持可以两个库,支持读写分离。
业务层面的分表不支持。
菜鸟起冰 2016-11-16 18:15:42
请问一下 该框架带有静态缓存嘛?
王春生 2016-11-17 07:58:49
你可以看我们蝉知系统,蝉知系统在zentaophp框架基础上做了框架的扩展,增加了缓存机制。www.chanzhi.org
iDawn 2016-10-31 15:58:32
强烈支持不用命名空间,这玩意让我放弃了用YII,感觉完全多此一举的东西
王春生 2016-11-02 08:20:03
:),哈哈。
hyf 2016-09-26 16:01:50
感觉跟现在一些比较推崇的观点不一样,
比如 使用命名空间,依赖注入,
还有就是 尽可能使用第三方写好的组件,等 。

想问的是 这个框架 为什么没有使用这些。这么做有什么优势?
王春生 2016-09-28 08:11:12
命名空间是为了解决管理的问题。但如果可以将代码控制的足够简单,何必要用命名空间呢?
再加上我们的用户php环境还有很多是老版本的,命名空间不支持。
第三方的组件我们用到的很少。
总之目的,框架要简单可控,做到最少依赖,概念要做到足够简单。
hyf 2016-09-26 10:09:08
filter.class.php
检查手机号码
建议把正则改一下 ,中国部分地区已开通 17 开头的手机号(亲身经历)
王春生 2016-09-28 08:11:33
这个应该有记录了。谢谢。
Allen 2016-08-25 18:48:22
下载框架后 报的是500的错 我看了一下跟。htaccess有关 不知道怎么解决
王春生 2016-08-28 08:10:55
可以删掉。
zs 2016-08-24 12:00:58
你好 ,请问 为什么子类control必须调用父类的__construct() ?我调试下代码发现子类control new 完之后basecontrol 的__construct() 不会自动调用示怎么回事呢
zs 2016-08-24 14:38:51
找到原因了 是子类的方法名和类名重名了 把basecontrol的构造方法覆盖了 ~汗
ZJ 2016-08-18 14:47:18
不错支持
王春生 2016-08-19 08:18:48
多谢多谢。:)
1/1
发表评论
评论通过审核后显示。