`
yipsilon
  • 浏览: 242850 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论
文章列表
虽然有人抱怨使用Apache的mod_rewrite在访问量大的时候经常会出现CPU的占用率为 100%的情况,但是对于一些中小型网站来说,这样做毕竟会美化URL,有益于搜索引擎的收录。 因此CMSPAD 1.1的最后一个特性就是支持URL路由(或URL Rewrite ...
某些情况下,网站的提交数据内容是非常机密的,不允许外界用过嗅探的手段截获(或者即使截获了也看不到明文的内容),这样大家第一反应是使用SSL进行连接。 但仅仅使用SSL并不能满足真正的需要,因为像FireFox这样的浏览器,通过插件(如FireBugs)可以看到具体提交数据的地址和内容,这样真正的黑客可能会通过这个手段来截取提交数据来达到试图攻击网站目的。这样,就需要把这接数据在提交之前先给加密起来。 CMSPAD中提供了一种叫SecurityKey的技术,支持客户端提交前将请求数据加密,即使使用FireBugs这样的调试插件,也只是看到加密后的内容,而且密钥由服务器端控制,用户可以定期更改密 ...
表单字段验证这可是常见应用开发框架中比较重要的一块儿,至少在我看来是这样的。因此,在设计CMSPAD中的表单验证器过程中,我们研究了很多已存在的PHP框架,提炼他们比较有优势的地方,加上本身的项目经验,开发出了具 ...
从头到尾看了一遍,突然发现有个家伙的腿上居然长毛,于是就把图片放大仔细呀看滴... 真的是长毛哦!当时就想是不是基因变异啊,或者是野人?...:x 直到后面有个跟贴:“居然有男的,无语...”,当时晕倒,我咋就没想到啊。:o
很多界面效果库都是使用JSON来提供服务的,例如ExtJS等。因此,为了更好的兼容这些类库,我们为CMSPAD增加了一个JSON服务的特性。 同样地,它也是通过Portlet来对页面进行服务的: class SimplePortlet extends Portlet{ // 直接返回JSON字符串 public function jsonMyService1(){ return '{"hello":{"world":"JSON 测试"}}'; } // 返回对象时,自动转换成JSON字符串 ...
PHP中的高速缓冲器,对高负载来的网站来说是一个非常需要的组件。其中最经典的使用案例就是用户会话(Session)的高速存取:如果使用默认的基于文件的会话句柄,负载量较大时会产生大量的IO操作,导致系统运行效率降低;而使用基于数据库的会话句柄,虽然性能会得以提高,但负载量大时,还是容易给数据库服务器造成负担。那如何才能调整会话句柄来使PHP最优化呢? 引用答案是:使用高速缓冲器! 市面上现有的PHP高速缓冲组件很多,常用的有 eAccelerator、XCache、Memcache(这个东东Robin经常提到)、APC等。 这就产生了一个问题:当网站访问量较小时,使用了一种缓冲组件,而访问量增大 ...
前段时间我们在项目选型中选择了EZPDO作为ORM工具,但其运行效率之低确实也让我们汗颜。于是,我们开设了一个新的项目组专门来为CMSPAD研发ORM工具包,目的是提供一个更简化的类ActiveRecord模式的ORM工具,命名为“CMSPAD Object!” ...
本来想自己研发UI库,自从看到了ExtJS,我们彻底打消了重复造轮子的想法,也决定使用ExtJS来作为CMSPAD UI部分的基础类库。于是,偶们想到了一个个人感觉比较BT的方法来实现它--使用PHP来进行封装。 (以下代码和演示已经验证可用) 先看看运行ExtJS库PHP代码: <?php import('ExtJS:ExtApplication'); import('ExtJS:ExtButton'); import('ExtJS:ExtMessageBox'); class Test1 implements ExtRunnable{ /** * @par ...
PHPortlet技术是CMSPAD项目的重点特性之一,在MVC架构中它起到了View与Controller通信和数据交换的功能。 大概的流程就是:客户端的脚本通过PHPortlet指定的语法对HTML页面元素进行封装,然后监听其动作,一旦有事件发生,数据会通过AJAX自动提交到服务器端相对应的Portlet组件进行处理。下面,我来说说它目前已经提供的功能: 1. 视图内容绑定(View Content Binding):在页面中通过PHP模板标签语法或纯HTML语法对HTML内容区块进行数据绑定。 用于服务器端的模板代码 <{portlet name="SimplePor ...
说到PHP的模板引擎,那可谓是很多。像Smarty、SmartTemplate、FastTemplate等等... 其中属Smarty功能最为强大。 不过呢,个人感觉它还有些欠缺的地方,例如表达式赋值,modifier只支持传递一个参数等。因此,在CMSPAD项目中我们开发了一套新的模板引擎,语法上大部分兼容Smarty,但提供更强大的函数引擎和表达式自动赋值。 下面我把一些范例写出来,看看能不能触发一下大家的创新思维: 1. 公用函数标签:<{@函数名称 [参数1 [参数2]]}> 模板代码 <{@strcmp "123456789" &qu ...
一个年轻漂亮的美国女孩在美国一家大型网上论坛金融版上发表了这样一个问题帖:我怎 样才能嫁给有钱人? “我下面要说的都是心里话。本人25岁,非常漂亮,谈吐文雅,有品位,想嫁给年薪50万 美元的人。你也许会说我贪心,但在纽约年薪100万才算是中产,本人的要求其实不高。 这个版上有没有年薪超过50万的人?你们都结婚了吗?我想请教各位一个问题—怎样才能 嫁给你们这样的有钱人?我约会过的人中,最有钱的年薪25万,这似乎是我的上限。要住 进纽约中心公园以西的高尚住宅区,年薪25万远远不够。我是来诚心诚意请教的。有几个 具体的问题:一、有钱的单身汉一般都在哪里消磨时光?(请列出酒吧、饭店、健身房 ...
也研究了一段时间的PHP,使用过了一堆libraries,之后发现:原来PHP的最佳实践就是“数组编程”啊! 从以下几个角度来看: 1. 基本语法(foreach等、array函数库):对于数组的操作是最简便的,而且还支持literal样式的数组(类似于Java的Map),不用耗费多少时间就可以掌握。 2. 核心引擎(Zend Engine):面向对象的编程开发量比较繁琐,没有Java那么方便。更重要的是,PHP引擎处理对象的效率比较低。 3. 数据库访问(PHP原生):返回出来数组时效率最高,而且还最简单。 4. 模板引擎(Smarty等):使用数组时,对模板制作最方便(直接使用“.”就可以了 ...
昨晚安装了新版的Google拼音输入法,安装好之后,发现拖动输入法小框框会出现一长串小尾巴~~~感觉挺好玩儿滴
正常获取表单的ID值的语法为:<表单对象>.id,这个大家都知道。不过下面的代码,看看会返回什么: <form id="create_data">         <input type="hidden" name="id" value="hello"/>       </form>       <script type="text/javascript">         alert(do ...
最近,偶们研发CMSPAD 1.0 框架版的时候,到了Model部分选型才发现PHP的ORM产品好少啊,不过经过筛选,最终还是敲定了 ezpdo 这个开源PHP ORM项目,就因为它的EZOQL其实就是Hibernate HQL的翻版,如果是一个Java开发人员来开发PHP程序的话,是很有亲切感的哦。于是乎一顿整合开始了..... 经过一周的努力,EZPDO终于无缝滴整合到CMSPAD中作为MVC体系中的Model部分。就在偶们为之兴奋滴时候,在紧接着的单元测试时,出现了一些性能上的瓶颈,貌似无法解决:一个DAO对象、一个数据表测试时,ORM部分的查询耗时居然达到了0.5秒,而整个框架单纯执行1 ...
Global site tag (gtag.js) - Google Analytics