锁定老帖子 主题:区块(Block)数据绑定技术
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-20
最近想出这么个点子,像开发Java一样开发PHP程序(仅架构而已),以前在Java中使用的Struts/Tiles,很不错,在PHP中只有Smarty模板生成引擎这样孤单地实现,还没发现一套可灵活使用的开发框架。于是,偶就试验了这个点子... 这个点子我取名叫“区块数据绑定技术”,关于这个技术我是这样定义的:一个页面(page)由一个或多个区块(block)组成,每个区块都有其实现类,负责区块内容的显示和操作。 下面是测试成功的样本代码,大家可以看一看,还有没有更好玩儿的特性能添加进去: Cmspad.php 区块实现类代码
其中,pageXXX为区块内容显示函数,当前有 head、body、footer 三个显示方法;formXXX是区块内容处理函数,使用Ajax进行数据传输,当前有 hello 和 world 处理过程,这两个过程在pageHead和pageFooter中定义的表单里可以看到绑定的内容。继续往下看:
index.php前台显示页代码
当前大家应该注意到了,里面的DIV中,有个bind属性,这就是区块数据绑定的关键。从这个页面可以看出,index.php页总共有三个区块,ID分别是 head、body、foot,他们绑定显示内容的方法是 Cmspad.head、Cmspad.body、Cmspad.footer 方法,转换成实际的类方法,就是 Cmspad.pageHead、Cmspad.pageBody、Cmspad.pageFooter 方法,这时,现实的效果就像如下的截图。
大家看到了,当点击第一个 Submit 按钮的时候,弹出了这个对话框,而这个对话框的内容在 区块实现代码 中可以找到,那就是 Cmspad.formHello 里的方法,第二个按钮同理。 这意味着什么,每个页面的去管只需要负责它自身范围的内容和操作即可,不需要涉及太多东西。这样再加上Smarty模板技术,美工和程序员就可以分开工作了,起码不用为代码变动而吵来吵去~:) PS:一大早上写这个,大脑还是有些迷糊,看不懂的朋友们别介意,呵呵。此实现的完整版(包含Smarty模板引擎和其他好玩儿的特性)已加入到CMSPAD项目中,关于该项目的具体开发进度看这里:http://yipsilon.iteye.com/blog/80249 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-22
CMSPAD LITE版做好了,看看演示吧。HOHO
http://www.eclipseworld.org/beta/cmspad/index.php |
|
返回顶楼 | |
发表时间:2007-05-24
新版的FORM,支持无刷新的文件上传。
在IE7、FF2、OP9下测试通过.... 楼上的网址里有演示~:) |
|
返回顶楼 | |
发表时间:2007-05-24
小建议。你的区块是一个一个加载的,通常这种体验并不好,一块要5秒,3块就是15秒,最好是一起请求。
另外js文件不能搞成可读的么?我怎么就没找到项目完整代码下载呢? |
|
返回顶楼 | |
发表时间:2007-05-25
啊呀,建议很好嘛,偶们这就研究去,一次性区块载入技术。HOHO
|
|
返回顶楼 | |
发表时间:2007-05-26
To qiezi:
你说的“区块一次性载入”这个特性,已经做好并放到演示页上了。 |
|
返回顶楼 | |
发表时间:2007-06-03
引用 在PHP中只有Smarty模板生成引擎这样孤单地实现,还没发现一套可灵活使用的开发框架。 引用 这个点子我取名叫“区块数据绑定技术”,关于这个技术我是这样定义的:一个页面(page)由一个或多个区块(block)组成,每个区块都有其实现类,负责区块内容的显示和操作。 你真的看过smarty?smarty没有block? |
|
返回顶楼 | |
发表时间:2007-08-20
smarty的block不过是在PHP代码中调用一个特定参数的function。
而这里的block是指把页面内容分块,每个块儿就叫做block。 |
|
返回顶楼 | |
浏览 7205 次