当前位置: 首页 > 科技观察

PHP转Go首选框架:GoFrame

时间:2023-03-12 07:17:56 科技观察

最近发现了一个非常好用的基于go语言的web开发框架,非常适合PHP转Go的同学。它在很多设计思想和使用上都非常类似于PHP的Laravel框架。图片。今天给大家简单介绍一下GoFrame的特点:官方介绍GoFrame是一个模块化、高性能、企业级的基于Go的开发框架。GoFrame不是一个WEB/RPC框架,而是一个通用的基础开发框架。是Golang标准库的增强扩展级别,包括通用的核心基础开发组件。优点是实用性、模块化、文档全面、模块化。丰富、易于使用、用途广泛且面向团队。我的使用体验官方文档对框架的特点有详细介绍,我就不赘述了。让我从用户和学习者的角度分享我的学习经验。设计思维设计思维是GoFrame框架的灵魂,同时也是用户不可或缺的内功。GoFrame有自己独特的设计思想。一旦你理解了GoFrame的设计思想,你就会理解GoFrame的一切。和PHP的Laravel一样,goframe的设计思想非常值得我们学习和借鉴。学习建议对于有基础知识的同学,建议可以先简单熟悉框架设计,操作快速入门,然后重点阅读核心组件[1],尤其是数据库ORM。熟悉LaravelEloquent的同学似乎是比较容易的,很多使用和习惯也比较相似。下面我给大家举个例子,让大家体验一下。从一些细节设计中,我们可以明显感受到设计者对PHP-to-go开发者的友好。对象管理相关:数组也是切片的别名。猜测是迎合了PHP转go的使用习惯。PHP的数组更类似于golang的slice,因为Go的数组是定长的。type(Var=gvar.Var//是一个常用的变量,类型似泛型Ctx=context.Context//context.Context的别名)//Map是对原始map的key值约定好的类型,起了别名type(Map=map[string]interface{}MapAnyAny=map[interface{}]interface{}//MapAnyAny是常用地图类型map[interface{}]interface{}的别名。MapAnyStr=map[interface{}]string//MapAnyStr是常用地图类型的别名map[interface{}]string.MapAnyInt=map[interface{}]int//MapAnyInt是常用地图类型map[interface{}]int的别名.MapStrAny=map[string]interface{}//MapStrAny是常用地图类型的别名map[string]interface{}.MapStrStr=map[string]string//MapStrStr是常用地图类型map[string]string的别名。MapStrInt=map[string]int//MapStrInt是常用映射类型map[string]int的别名MapIntAny=map[int]interface{}//MapIntAny是常用映射类型map[int]interface{的别名}....)//List是地图类型的切片类型(List=[]MapListAnyAny=[]MapAnyAny//ListAnyAny是常用切片类型的别名usedslicetype[]MapAnyStr.ListAnyInt=[]MapAnyInt//ListAnyInt是常用切片类型的别名[]MapAnyInt.ListStrAny=[]MapStrAny//ListStrAny是常用切片类型的别名[]MapStrAny.ListStrStr=[]MapStrStr//ListStrStrisaliasoffrequently-usedslicetype[]MapStrStr.ListStrInt=[]MapStrInt//ListStrIntaliasoffrequently-used...)//Slice就是切片的别名type(Slice=[]interface{}//Slice是常用切片类型[]interface{}的别名SliceAny=[]interface{}//SliceAny是常用切片类型[]interface{}的别名SliceStr=[]string//SliceStrisaliasoffrequently-usedslicetype[]string.SliceInt=[]int//SliceInt是frequen的别名tly-usedslicetype[]int.)//数组也是切片的别名。猜测是为了迎合PHP的使用习惯去的。PHP的array更类似于golang的slice,因为go的array的定长类型(Array=[]interface{}//Array是常用的slice类型[]interface{}的别名。ArrayAny=[]interface{}//ArrayAny是常用切片类型[]interface{}的别名ArrayStr=[]string//ArrayStr是常用切片类型[]string的别名ArrayInt=[]int//ArrayInt是常用切片类型的别名-使用了slice类型[]int,建议先学习Go的基础语法,可以订阅我的GO语言学习专栏,学习Go的基础知识,再看看Goframe的框架。因为只有搞清楚了学了Go语言的基础知识,才能更好的了解GoFrame的优势和使用技巧,就像我们做PHP一样,要先学习PHP的基本语法,再学习TP、Laravel等框架。PHP基础没有Go语言基础,转Go还是比较容易的,可能只是不够灵活作为PHP,所以你可以随心所欲地编写代码,尝试GO语言苛刻的标准化开发可能会是一种乐趣。复制粘贴官网地址的重复性工作我就不做了。更多内容建议大家查看下方官网。目前最新的2.0版本[2]小坑正在阅读文档,我们无法清楚的知道当前文档的版本,我已经将这个issue提交给社区,目前阅读建议是这样的,我们拉取页面到顶部,点击左上角这里切换版本。相关资料[1]核心组件:https://goframe.org/pages/viewpage.action?pageId=1114409[2]最新2.0版本:https://goframe.org/pages/viewpage.action?pageId=1114119本文转载自微信公众号《程序员升级打怪之旅》,作者“王中阳围棋”,可通过以下二维码关注。转载本文请联系《程序员升级打怪之旅》公众号。

最新推荐
猜你喜欢