一、什么是ZenTaoPHP框架
ZenTaoPHP框架是由禅道项目管理软件开发团队开发的一款轻量级的PHP开发框架,它主要的特点是:
1.1 代码简单
ZenTaoPHP框架核心只有四个文件,分别为调度类router.class.php,control类control.class.php,model类model.class.php和工具类helper.class.php。里面的代码也足够简单。这样大家可以很容易的读懂它的代码,并根据自己的实际应用进行定制修改。
1.2 性能良好
ZenTaoPHP框架在实现过程中,十分重视性能。在保证功能的前提下面,尽可能的提升程序执行效率。
1.3 结构清晰
使用ZenTaoPHP框架来开发应用,其目录结构简单清晰,维护起来非常的方便。
1.4 开发友好
框架,首先是一个框,把你框在了里面。所以很多框架会有很多的约定,你要怎样,你要怎样。还有很多隐形的约定,比如你要在你的代码里面写很多的xxxx之类的东东。我觉得一个好的框架在实现功能的前提下,应当尽量兼顾开发人员之前的开发习惯。ZenTaoPHP框架在这方面花了很大的力气:
中性命名:框架实现时,没有出现什么zentao之类的命名,完全是中性的命名:router, control, model, config, lang。
配置对象化: 配置项可以通过对象的方式来引用,$config->db->user,要比$config['db']['user']简洁顺畅的多。
相对路径包含:在ZenTaoPHP框架开发的应用中,所有的路径都可以用相对路径来进行包含,这样可以很清晰的知道目录结构和代码之间的关系。
1.5 public domain 授权
public domain 授权就是你可以拿它做任何的事情,禅道开发团队已经将ZenTaoPHP框架的版权完全的捐献给了公众领域。任何人,任何单位可以拿它做任何的事情,而没有任何的限制。
二、ZenTaoPHP框架的主要功能如下:
2.1 单一入口模式
单一入口是现在比较流行的开发方式。好处在于可以有一个集中的控制。或者讲框架一个比较基本的东西也是单一入口吧。现在ZenTaoPHP框架支持web方式和命令行方式的两种入口文件。具体的例子大家可以查看app目录下面的demo/www/index.php和cli/call这两个文件。
2.2 MVC
ZenTaoPHP支持MVC方式的开发。不过相比较于其他框架的多种模板实现来讲,ZenTaoPHP并没有尝试去开发一套新的模板系统,而是采用PHP作为模板语言。这是最快的一种解决方案,而且也是最简洁的一种方案。
2.3 支持GET和PATH_INFO两种方式调用
支持 index.php?m=user&f=info&id=123这种GET方式的调用,也支持 /user/info/id/123.html 这种方式的调用。如果你能控制你的运行环境,可以使用PATH_INFO的方式,这样生成的URL地址更加简捷,而且对搜索引擎十分友好。
2.4 内置数据库访问层DAO
禅道框架内置了DAO数据库访问层,在PDO的基础上,提供了完整的SQL拼装功能,可以非常方便的书写SQL查询语句,获取数据。而且我们在实现DAO的时候,花了很大的力气在兼容之前大家手写SQL的习惯,所以大家在使用禅道框架的DAO的时候,会发现很亲切,因为和手写SQL基本上是相同的。
2.5 支持跨模块之间的调用
在ZenTaoPHP框架中,一个模块的control或者model都可以直接调用另外一个模块的model,这样就可以将一个应用进行模块化,然后通过采用不同模块的功能,来实现比较复杂的功能。
除了model的调用之外,一个模块的control还可以fetch另外一个模块的control方法,这种一般用于一些共用的页面元素,比如打印一个搜索表单,或者打印菜单等等。通过control之间的互相调用,实现代码的共享。
2.6 无需路由配置,即可获得简捷的URL
ZenTaoPHP框架提供了简洁的参数传递方式。比如user模块有一个read方法,需要id和name两个参数,通常的PATH_INO为user/read/id/1/name/wwccss.html,而ZenTaoPHP支持user/read/1/wwccss.html的形式,这样就省略了参数名的传递。这一切,都不需要配置任何的路由,直接通过框架的功能就可以获得。
2.7 灵活的数据验证机制
禅道PHP框架内置了灵活的数据验证机制,可以实现对数据的修正和检查,代码极其紧凑,简洁。
2.8 配置和语言可以通过对象方式引用
ZenTaoPHP框架的配置没有用什么ini文件,也没有用什么yaml文件,也没有用php的数组,而是直接用PHP对象的形式。这样配置文件不需要解析,就可以直接使用,而且引用起来十分的方便。形如$config->db->host的这种方式,而不是$config['db']['host']的这种方式。书写起来会非常的流畅!
2.9 方便的全局变量应用
在ZenTaoPHP框架中,引用GET,POST, SERVER这样的全局变量,可以通过这样的方式:$this->get->userName, $this->post->userName, $this->server->remote_addr。
2.10 所见即API
在现在开放平台的潮流下面,有一个非常好的api机制是比较重要的。在ZT中,每一个接口都可以成为api。至于api的方式,是通过其访问的扩展名来加以区分。比如如果你访问的是user/read/id/123.html,那么返回的是正常的网页。如果访问的是user/read/id/123.json,那么返回的就是json格式的数据。
2.11 内置多语言支持
ZT支持多种语言功能,会自动根据当前用户客户端的信息来判断使用何种语言,这样可以方便大家开发多语言的应用。
2.12 强大的扩展机制
ZenTaoPHP框架实现了强大的扩展机制。通过这套扩展机制,做定制开发可以说是轻而易举,再也不用担心维护多个分支带来的痛苦了。
1.框架文档http://devel.cnezsoft.com/book/zentaophphelp/about-10.html zentaoPHP二次开发文档http://devel.cnezsoft.com/book/extension/intro-45.html 2.空框架测试,Internal Server Error是伪静态导致,删除你站点根目录下面的.htaccess。 参
zentaoPHP框架是做什么的(整理) 一、总结 一句话总结:应该是主要用作项目管理的(暂时没用过) 项目管理 看了下面的两篇资料,感觉没啥特色 看了文件目录结构,感觉就是一个标准的mvc框架 看了目录结构,感觉语言切换倒是比较直观明显 1、thinkphp框架和zentaophp框架中选哪个? thinkphp 选thinkphp,国人用thinkphp的多,而且感觉zentaophp框架
---恢复内容开始--- 'id' mediumint http://wayne173.iteye.com/blog/1631095 vim学习: http://coolshell.cn/articles/5426.html 办公自动化(OA)是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,自1985年国内召开第一次办公自动化规划会议以来,OA在应用内容的深度与广度、IT技术运
一、zentaoPHP框架的缘起 2009年我们决定开始启动禅道项目管理软件的开发,编程语言自然选择了一直使用的PHP。但在开发框架的选择上,颇费了一番功夫。09年的时候,php5.2系列的版本oop的功能已经比较强大,市面上也出现了一大批的框架。比如cakephp, symfony, zend framework, CodeIgniter等等。仔细的研究这些框架之后,符合我们要求的是 CodeI
原理: 首先,我们要明白为什么访问localhost就可以访问到我们的apache主页。 解析域名的时候,首先是从本地的hosts文件开始的。 如果查不到,才会去DNS服务器查询。 如果你在这里面写一行:127.0.0.1 www.baidu.com 百度你是肯定上不了。因为访问的是你自己的机器。 hosts 就是一个映射(域名和IP的对应,localhost也可以说是一个域名) loca
zentaoPHP框架手册1、框架介绍1.1、关于zentaoPHP框架1.1.1、zentaoPHP框架的缘起2009年我们决定开始启动禅道项目管理软件的开发,编程语言自然选择了一直使用的PHP。但在开发框架的选择上,颇费了一番功夫。09年的时候,php5.2系列的版本oop的功能已经比较强大,市面上也出现了一大批的框架。比如cakephp, symfony, zend framework, c
一、router router在ZT框架中通常表现为index.php。通过apache的配置文件,将某一个域名下面所有的请求解析到这个index.php文件。然后由这个index.php来负责调度。 二、app router会根据当前的请求来实例化一个具体的应用。比如demo应用的index.php代码如下: include '../../../framework/router.class.ph
参考lib/base/dao/dao.class.phpt第1527-1557行,需要添加括号加上->markLeft()、->markRight() /** * 在左边添加'('。 * Add an '(' at left. * * @param int $count * @access public * @return ojbect the sql object. */ public func
一、API机制介绍: 前面章节讲述的扩展机制是需要直接开发PHP或者html, css, js等代码。zentaoPHP还提供了API机制,方便大家来和其他的系统进行集成。 API机制都是基于http协议的。返回的数据以json格式存储。 zentaoPHP架共实现了两种API机制。一种为直接的页面调用,一种通过超级model调用接口,直接调用model层的方法,下面我们一一来看下。 二、页面直接
zentaophp框架简介 zentaoPHP框架是禅道软件团队开发的一款轻量级的mvc框架,主要是为了服务我们团队自主产品的开发。和其他的框架相比,zentaoPHP框架更注重于结构的合理、开发的友好以及开发人员对代码的控制性,以及扩展性。 zentaoPHP框架成功地驱动了我们团队三个开源软件,上百个功能模块的开发。框架的扩展机制也比较好的解决了我们开源版本和收费版本之间的代码管理问题,定制客
分页对于基于数据库的应用来讲,是很常见的一个问题。新的zentaoPHP框架中,提供了内置的分页功能。使用如下: 我们以查询用户列表为例,在应用中建立一个user的模块,在其中的control文件中,定义一个browse方法,来完成分页的功能: 一、browse方法关于分页的三个参数 browse方法需要定义三个参数:recTotal, recPerPage, pageID,变量名是固定的。pub
北京 2018-09-11 09:38:44 能提供一下,nginx的配置吗?我在docker上的配置,报500错误。感谢 server { listen 80; rewrite_log on; server_name www.lchandao.com; location / { root /home/devops/workspace/chandao/zentaopro/www; index in
求助了,在安装 ZenTaoPHP框架发布1.0 alpha3版本 的时候报如下错误,帮帮忙看下。 Warning: PDO::setAttribute() [pdo.setattribute]: SQLSTATE[HY000]: General error: attribute value must be an integer in /var/lamp/apache/htdocs/zentao/
易软天创团队使用PHP这十几年过程中,也曾经使用过很多PHP开源的软件。在使用过程中,遇到了一个同样的问题:如果对代码做过个性化的修改,就没有办法跟着官方的版本进行升级了。做得稍好一些的比如wordpress, dupral, discuz这些程序后来有了自己的hook扩展机制。但这种扩展机制是基于动作或者事件的,只能对原有的系统做局部的修改,限制性比较强,没有办法对系统做比较深入的修改。带着这个
从今年1月分开始到现在,经过半年的开发,我今天终于可以高兴的向大家宣布,ZenTaoPHP框架正式发布1.0的稳定版。 ZenTaoPHP框架,简称ZT框架,中文名称禅道框架,是一款国产PHP框架。与其他优秀的国产PHP框架相比,比如FleaPHP, Qee, ThinkPHP等,ZT框架还很不成熟。因此希望各位朋友可以尝试使用ZT框架开发自己的应用,多提宝贵意见,大家一起来完善这个框架。 这次正
$this->createLink('moduleName', 'functionName', 'parameters');可以在control和view中调用 echo $this->createLink('blog', 'view', 'id=17&title="This is Blog"'); helper::createLink('moduleName', 'functionName',
---恢复内容开始--- 'id' mediumint http://wayne173.iteye.com/blog/1631095 vim学习: http://coolshell.cn/articles/5426.html 办公自动化(OA)是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,自1985年国内召开第一次办公自动化规划会议以来,OA在应用内容的深度与广度、IT技术运
一、zentaoPHP框架的缘起 2009年我们决定开始启动禅道项目管理软件的开发,编程语言自然选择了一直使用的PHP。但在开发框架的选择上,颇费了一番功夫。09年的时候,php5.2系列的版本oop的功能已经比较强大,市面上也出现了一大批的框架。比如cakephp, symfony, zend framework, codeignightor等等。仔细的研究这些框架之后,符合我们要求的是code
近发现好多站点已经开始收录ZenTaoPHP框架了,高兴之余又有些紧张。因为现在ZenTaoPHP功能还不是特别的完善,很多网友下载使用可能会有很多的问题。还是要抓紧时间完善它。呵呵。 后面ZenTaoPHP计划要改进的地方: 1. 使用pear打包,方便大家的安装。 之前做BugFree,安装这一点一直没有做好。很多网友花了很大的力气在安装上面。所以这次做ZenTaoPHP,还有后面的项目管理软
zentaoPHP框架的主要功能如下: 一、单一入口模式 单一入口是现在比较流行的开发方式。好处在于可以有一个集中的控制。或者讲框架一个比较基本的东西也是单一入口吧。现在ZenTaoPHP框架支持web方式和命令行方式的两种入口文件。具体的例子大家可以查看app目录下面的demo/www/index.php和cli/call这两个文件。 二、MVC模式 ZenTaoPHP支持MVC方式的开发。不过
目录结构对于一个框架来讲是比较重要的。我们一起来看一下ZenTaoPHP的目录结构。 一、顶级目录结构 config: 配置文件所在的目录。包含了config.php和my.php db: demo应用所需要的blog.sql framework: 包含了框架的核心文件。 js: 包含了js脚本文件。 lib: 包含了常用的类文件。 module: 模块目录,每个模块一个目录,存放在module目
除了扩展机制,API机制,zentaoPHP框架还提供了命令行的入口,给大家提供了另外一种控制应用的方式。 一、何谓命令行入口 使用zentaoPHP开发的应用有集中的入口。拿禅道项目管理软件举例,www/index.php是重要,也是大家平时都在使用的入口。还有就是www/install.php, www/upgrade.php,顾名思义,为安装的入口和升级的入口。这三个入口,index.php
一、关于DAO的说明 zentaoPHP并没有试着去实现ORM或者ActiveRecord这样的概念。因为我们相信,框架要留给开发人员足够的自由发挥的空间,而不是所有的都要包办。所以框架里面提供了一个简单方便的数据库访问对象类DAO。并且我们在封装DAO的时候尽可能的兼容标准的sql写法。 DAO类的定义在lib下面的dao.class.php中。框架在加载的时候,会自动生成$this->dao对
zentaoPHP框架共支持两种方式,一种是传统的GET方式,一种是静态友好的方式。 一、传统GET方式 可以在config/my.php里面设置requestType为GET来启用GET方式。当打开GET方式之后,访问地址格式如下: index.php?m=$moduleName&f=$methodName&$param1=$value1¶m2=valur2&t=html m: 代表模块
原理: 首先,我们要明白为什么访问localhost就可以访问到我们的apache主页。 解析域名的时候,首先是从本地的hosts文件开始的。 如果查不到,才会去DNS服务器查询。 如果你在这里面写一行:127.0.0.1 www.baidu.com 百度你是肯定上不了。因为访问的是你自己的机器。 hosts 就是一个映射(域名和IP的对应,localhost也可以说是一个域名) loca
1.helper::now();//返回当前时间, 格式:Y-m-d h:i:s 2. 转载于:https://my.oschina.net/zhubaoxin/blog/968151
我们在WebLogic11g下使用JSF2.1+PrimeFaces6.0+PrimeFaces-Extensions6.0.0、mojarra 2.1.7。 单击p:commandButton后,DOM inspector显示对话框已在正文和html标记之外创建,如下一个图像所示: 在正文外部呈现的对话框 如果我们使用相同的代码(没有帧)创建一个新的.xhtml,并单击p:commandButt
许多的 PHP 开发者都使用框架,而不是重新造轮子来构建 Web 应用。框架抽象了许多底层常用的逻辑,并提供了有益又简便的方法來完成常见的任务。 你并不一定要在每个项目中都使用框架。有时候原生的 PHP 才是正确的选择,但如果你需要一个框架,那么有如下三种主要类型: 微型框架 全栈框架 组件框架 微型框架基本上是一个封装的路由,用来转发 HTTP 请求至一个闭包,控制器,或方法等等,尽可能地加快开
主要内容:iframe - 设置高度与宽度,实例,iframe - 移除边框,实例,使用 iframe 来显示目标链接页面,实例,HTML iframe 标签通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。 iframe语法: 该URL指向不同的网页。 iframe - 设置高度与宽度 height 和 width 属性用来定义iframe标签的高度与宽度。 属性默认以像素为单位, 但是你可以指定其按比例显示 (如:"80%")。 实例 <iframe loading="lazy" s
tornado.web — RequestHandler and Application classes Thread-safety notes Request handlers Entry points Input Output Cookies Other Application configuration Decorators Everything else tornado.template
UI /主题框架和组件 LESS支持下表中列出的一些UI/Theme框架 - Sr.No. 框架和描述 1 1pxdeep 它是平坦的Bootstrap 3主题,提供强大的配色方案控件。 2 Bootflat 它是一个基于Bootstrap的开源框架。 3 BootPress 它是一个基于平面文件CMS的PHP框架 4 Bootstrap 它是功能强大的移动第一前端框架,可实现更快,更轻松的Web
本章介绍 Decoder(解码器) Encoder(编码器) Codec(编解码器) 在前面的章节中,我们讨论了连接到拦截操作或数据处理链的不同方式,展示了如何使用 ChannelHandler 及其相关的类来实现几乎任何一种应用程序所需的逻辑。但正如标准架构模式通常有专门的框架,通用处理模式很适合使用目标实现,可以节省我们大量的开发时间和精力。 在这一章,我们将研究编码和解码——数据从一种特定协
WLAN框架接口 函数 rt_err_t rt_wlan_set_mode (const char *dev_name, rt_wlan_mode_t mode) 注册WLAN设备到WLAN设备框架 rt_err_t rt_wlan_connect (const char *ssid, const char *password) 同步连接热点 rt_err_t rt_wlan
通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。 iframe语法: <iframe src="URL"></iframe> 该URL指向不同的网页。 Iframe - 设置高度与宽度 height 和 width 属性用来定义iframe标签的高度与宽度。 属性默认以像素为单位, 但是你可以指定其按比例显示 (如:"80%")。 <iframe src="demo_iframe.htm