首页 php教程 php手册 ColaPHP 2.0α发布

ColaPHP 2.0α发布

Jun 13, 2016 am 10:53 AM
代码 减少 功能 发布 基本 大小 文件 框架 精简

框架文件大小从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又回到了初见,原本简单。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何评估Java框架商业支持的性价比 如何评估Java框架商业支持的性价比 Jun 05, 2024 pm 05:25 PM

评估Java框架商业支持的性价比涉及以下步骤:确定所需的保障级别和服务水平协议(SLA)保证。研究支持团队的经验和专业知识。考虑附加服务,如升级、故障排除和性能优化。权衡商业支持成本与风险缓解和提高效率。

清华大学与智谱AI重磅开源 GLM-4:掀起自然语言处理新革命 清华大学与智谱AI重磅开源 GLM-4:掀起自然语言处理新革命 Jun 12, 2024 pm 08:38 PM

自2023年3月14日开始,ChatGLM-6B以来,GLM系列模型受到了广泛的关注和认可。特别是在ChatGLM3-6B开源之后,开发者对智谱AI推出的第四代模型充满了期待。而这一期待,随着GLM-4-9B的发布,终于得到了充分的满足。GLM-4-9B的诞生为了赋予小模型(10B及以下)更加强大的能力,GLM技术团队经过近半年的探索,推出了这一全新的第四代GLM系列开源模型:GLM-4-9B。这一模型在保证精度的同时,大幅度压缩了模型大小,具有更快的推理速度和更高的效率。GLM技术团队的探索没

GateToken(GT)币是什么?GT币功能及代币经济学介绍 GateToken(GT)币是什么?GT币功能及代币经济学介绍 Jul 15, 2024 pm 04:36 PM

GateToken(GT)币是什么? GT(GateToken)是GateChain的链上原生资产,也是Gate.io的官方平台币。 GT币的价值与Gate.io及GateChain生态的发展息息相关。什么是GateChain? GateChain诞生于2018年,是Gate.io所推出的新一代高性能公链。 GateChain专注于保护用户的链上资产安全,并提供便捷的去中心化交易服务。 GateChain的目标是构建一个企业级安全高效的去中心化数字资产储存、分发和交易生态系统。 Gatechain具有独创的

PHP 框架的轻量级选项如何影响应用程序性能? PHP 框架的轻量级选项如何影响应用程序性能? Jun 06, 2024 am 10:53 AM

轻量级PHP框架通过小体积和低资源消耗提升应用程序性能。其特点包括:体积小,启动快,内存占用低提升响应速度和吞吐量,降低资源消耗实战案例:SlimFramework创建RESTAPI,仅500KB,高响应性、高吞吐量

Mistral 开源代码模型夺得王座!Codestral疯狂训练超80种语言,国内通义开发者请求出战! Mistral 开源代码模型夺得王座!Codestral疯狂训练超80种语言,国内通义开发者请求出战! Jun 08, 2024 pm 09:55 PM

出品|51CTO技术栈(微信号:blog51cto)Mistral发布了首个代码模型Codestral-22B!该模型的疯狂之处不仅在于训练了80多种编程语言,包括许多代码模型忽略的Swift等。他们的速度没有完全一致。要求使用Go语言编写一个“发布/订阅”系统。这里的GPT-4o正在输出,Codestral已经快到看不清的速度交卷了!由于该模型刚刚推出,尚未公开测试。但根据Mistral的负责人说法,Codestral是目前表现最佳的开源代码模型。图片感兴趣的朋友可以移步:-抱抱脸:https

PHP 框架的学习曲线与其他语言框架相比如何? PHP 框架的学习曲线与其他语言框架相比如何? Jun 06, 2024 pm 12:41 PM

PHP框架的学习曲线取决于语言熟练度、框架复杂性、文档质量和社区支持。与Python框架相比,PHP框架的学习曲线更高,而与Ruby框架相比,则较低。与Java框架相比,PHP框架的学习曲线中等,但入门时间较短。

如何为不同的应用场景选择最佳的golang框架 如何为不同的应用场景选择最佳的golang框架 Jun 05, 2024 pm 04:05 PM

根据应用场景选择最佳Go框架:考虑应用类型、语言特性、性能需求、生态系统。常见Go框架:Gin(Web应用)、Echo(Web服务)、Fiber(高吞吐量)、gorm(ORM)、fasthttp(速度)。实战案例:构建RESTAPI(Fiber),与数据库交互(gorm)。选择框架:性能关键选fasthttp,灵活Web应用选Gin/Echo,数据库交互选gorm。

魅族新机曝光 配 6000mAh 超大电池 魅族 22 发布时间较晚 魅族新机曝光 配 6000mAh 超大电池 魅族 22 发布时间较晚 Aug 07, 2024 pm 07:02 PM

8月6日,CNMO注意到,魅族新机再度曝光。据爆料人士提供的信息,魅族正在筹备一款中端机型,预计将配备6000mAh的超大容量电池,魅族22系列暂时没有什么动静,预计将配备高通骁龙8Gen4移动平台,发布时间可能稍晚。参考此前魅族新机,CNMO认为魅族22系列可能会在2025年第一季度发布。1.魅族旗下新机通过国家质量认证,型号为M431Q。该机定位入门级,仅支持10W充电,价格预计在千元左右。该机疑似魅族子品牌魅蓝旗下产品。M431Q于今年5月与其他几款机型一起在数据库中被发现。此次通过国家质

See all articles