cola php,ColaPHP 2.0α发布_PHP教程

框架文件大小从188KB精简到131KB,代码量减少30%,基本功能没有减少,主要归功于将很多成员变量public化,大大减少了set/get方法,另外就是重构了一些代码,尤其是一些以前有点看不下去又不能大改的代码。

还有一个明显的变化是把Com改到Ext,以前的想法是组件化(Component),有朋友反馈Com含义不明确容易误解,我也自觉组件这个词太大了,就改名Ext(扩展 Extension),简单一点,核心+扩展。好的命名代码完成了一半,当然有朋友觉得Ext也晦涩,目前感觉还好了。

和大家分享一些这次2.0开发中两件有趣的事情:

1)返回值的问题

很久以前在twitter上说过想把所有的返回值都改成{‘code’ : 0, ‘data’ : xxx}这样的,这次在开发的时候在犹豫要不要把所有的返回值都改成这样。

PHP还不是一个完全面向对象的语言,至少不能像python那样重载__bool__方法,这样直接的结果,我不能直接判断返回值,原来

if ($obj->foo($bar)) {

// do something

}

如果改返回数组,代码要改成:

$result = $obj->foo($bar);

if (0 === $result['code']) {

// do something

}

不太喜欢,多了一行代码,也不符合”懒惰”程序员的思维,会调整很多人的”神经”。

最近也很喜欢Go语言的错误处理方式,返回数据以及错误信息,所以ColaPHP返回值大多改造成还是返回操作值,失败就返回false,但是多提供了一个error成员变量,方便快速获取错误信息:

if ($obj->foo($bar)) {

// do something

} else {

var_dump($obj->error);

}

算是一个trade-off的方案吧,不过还是比较满意。

2) 异常处理

ColaPHP 1.x版本挺喜欢抛异常的,一些影响流程的错误全部抛异常,简单粗暴直接有效。在开发2.0的时候犹豫是不是要给使用者友好的错误信息,不想使用者一用到ColaPHP的代码就try {} catch {}之类的,流程断不断,交给程序员自己控制(这也是ColaPHP的设计哲学之一)。

犹豫了许久,google了一些PHP处理异常方式方法的文章,看到Laruence的我们什么时候应该使用异常?,权衡一下还是觉得直接抛比较好,相比try-catch,更难忍受充斥着if-else的代码,两害取其轻吧。

总的感觉,ColaPHP 2.0又回到了初见,原本简单。

http://www.bkjia.com/PHPjc/477832.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477832.htmlTechArticle框架文件大小从188KB精简到131KB,代码量减少30%,基本功能没有减少,主要归功于将很多成员变量public化,大大减少了set/get方法,另外就是重...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值