今天不聊大厂。
聊聊这个和我一起折腾了将近十年的框架,也就是。它确实速度快。但它这般的“快”实实在在拯救了多少新手呢,又究竟埋下了多少坑哦?真心真意地和你说一说。
什么是快速开发框架
其实说白了,快速开发框架就是给你搭好了一个脚手架。
路由不用你从起始开始去从头撰写,数据库连接也无需你自己去着手进行,轮子更是万万不用你去制造出来。便是如此这般,其于2006年便已然得以现世现身,百度百科之上明确记载着——乃是为了将企业级应用开发予以简化而得已诞生问世的。
那年我刚转行,老板就扔给我一个OA系统,要求一周上线。一周?那时候我连MVC是什么都没弄明白。但你别说,照着的中文文档一通复制粘贴,居然真运行起来了。
那个周五下午看到系统能跑的那一刻,比发年终奖还激动。
初学者适合学吗
太适合了。简直就是为新手量身定做的。
针对中文的文档,所撰写的全部都是通俗易懂的话语。函数的命名与原生的PHP极为相像,学习起来基本上不存在什么压力。互联网上的教程一找就有很多,你只是随便进行搜索,就能找寻到从零开始直至实战的那种。
那个时候,对着屏幕敲代码的情景我还记得呢。看着教程,敲一下代码得保存一次,跑一下程序又得看一眼。现在回头看,当时写的代码糟糕得很,可那种“我能行”的感受实在是太让人畅快了。社区里到处都是新人在问“大佬我这个为啥不行”,氛围相当不错。
然而说实话,现今的8.0版本相较于当年要繁杂许多,强类型、PSR标准都已纳入。新手入行的难度相较于以往有所提升,不过去钻研老版本又担忧无法跟随时代步伐。
这也是很多人的纠结吧。
hp可以做大型项目吗
这个问题吵了好多年。
有人讲TP仅适宜于中小项目,因功能存在一定局限,然而,亦有人将其运用于电商、CRM乃至ERP这类企业应用领域,且运行状况颇为稳定,甚至,还有技术方案采用TP6与构建APP以及小程序的后台。
我曾亲自经手过一套针对三四线城市打造的商城,底层按理来讲不算特别大,然而并发却没有想象中的那么高,TP运行起来实际上还算比较顺畅,未曾出现过重大问题,我的观点是,关键还是得看架构以及人,框架本身并没有那么重要,不要过于纠结。
假定你去做那种拥有几千万用户,且实时要求高的超繁杂规模之举,推测你大概依旧得启用框架。
版本选择的问题
说到这个我真想敲自己两下。回想起来全是泪。
TP3.2的那个时期,真的是好用至极。模型能够以极其直接且不加修饰的方式去编写链式操作,甚至于将面向过程与纯MVC混合在一起居然也能够正常运行。对于新手而言有着超乎寻常的友好程度。在一段时期内,基本上变成了从事外包小项目时的标准配置武器,在各个地方都能够得以运用。
随后,TP5问世了。它有命名空间,还有,然而,一个框架却产生了多个各异的版本,甚至其内部逻辑的变动幅度还相当大。我目睹过好几个人发出抱怨,声称“5.0和5.1全然是两种不同的事物”。
真的是版本问题特别折磨人,有一回,我有个同事接手了一个老项目,它是TP3.2的,想要挪到稍微新一点的环境去跑起来,结果安装PHP7之后出现了各种各样的报错,把他搞得疑惑自己是不是活在梦里了,最后还是规规矩矩地降低版本才将问题解决。
新项目要选最新版本,这是我的建议,千万别留恋老的呀,不然之后你就自己吃苦头吧。
think p hp和哪个好
这简直是程序员圈的永恒争论。今天我不站队。
但我得说句公道话——文档上TP真的差一截子 。
曾有一回,我于运用TP8手写验证分组功能之际,翻阅手册良久,却硬是寻觅不到一个现成的事例。最终狠下心去查看源码方才弄清楚。然而呢,人家的手册撰写得如同经典小说那般,一步步引领你由浅入深,即便是新手也能够颇为便利地上手并加以实践。
可是TP确实快了许多,倘若你于那种十几天便需上线的短周期项目当中使用一回,就会知晓其中的差别,你瞧,就连一些从Java转过来的朋友都讲换成TP写东西,交付周期快了不少,而且中文文档齐全,便于查找且好用。
因此有的时候,我的心绪格外繁杂。一方面埋怨TP文档不够详细,另一方面却着实离不开它的高效能。或许这便是所谓的“相爱相杀”了吧。
真的能加速项目吗
我拿我刚转行的第一份私单来给你算笔账。
有一种情况是,有个客户,他所经营的是做本地团购的小平台,其预算并不高,并且工期被掐得非常死,然而我呢,借助,在不到三周的时间里,就完成了下单、支付、后台管理之类的一大摊活儿。
如何呢?要是你运用别的工具,估摸光是环境配置就得耗费好长一段时间吧?听闻起来效果的确是能够的。然而千万别太早得意。在真实的现场常常会发觉,书写得迅速,后期修改起来也是颇为麻烦的。一旦客户的需求发生变化,有时整个数据库的字段都必须重新搭建。那种崩塌的感觉,你能理解吗?
然而依旧是那句话,对于小公司而言,能够瞧出东西来便具备价值。客户并不关切你所耗用时间精心雕琢的代码究竟如何,或者其他情况,他们仅仅在意“你所做的为何还未完成呢”?有时,迅速即为准则。只是你自身必须明晰其中潜藏的成本。
最大的缺点
我觉得是当初版本割裂留下的“技术债”。
TP5将东西进行推倒重来,然而为了对老用户予以照顾,保留了一些极为别扭的方法。其结果致使代码风格变得五花八门。TP6又展开了一轮大幅度修改,对某些旧用法进行拆解甚至放弃。虽说这属于转型所带来的阵痛,可对于普通码农而言简直就如同在踩地雷一般。万一哪一天基于旧版本的系统你忽然想要添加个新东西,极有可能是连环境都没办法配置好。
除此之外,存在一些致使人们为之苦恼的历史安全方面的问题。随便在网上进行搜索,就会出现与“漏洞”相关的帖子,看到这些真的令人感到羞愧不已。
甚至还有人去吐槽它自身具备的跳转页呈现几秒钟的那种机制,稍微有那么一点过时的感觉。当然啦,你能够手动去绕开它,不过默认的这种设计实实在在会让一部分追求高度精细体验的人感觉不怎么现代。
写代码时的痛苦时刻
曾经,我于一个项目当中碰到过一个怪异的 bug,数据明明已然写入数据库里,然而在前端却根本无法调出,为此折腾了好一阵子,可始终都没有任何实质性的进展。
最终,我近似癫狂地将代码逐行分割开来,你猜怎样——是由于我有一个模型关联未妥善编写而致使的N + 1查询。页面每进行一次加载动作,就会产生几十个SQL查询用以响应,速度简直如同乌龟爬行一般缓慢。
老实讲,为贪图便利借助 ORM 链式随意去写模型关联着实畅快。然而等到你遭遇性能问题的那个时刻就会欲哭无泪了。并非框架存在局限,而是身为编写代码的你,仅仅记住了快,却没有用心去理解其内部的执行逻辑。同样是那次之后,我对于所有“便捷功能”都增添了几分警觉。
为什么还在用
现实原因很简单:中文文档,中文社区。
国内招聘PHP人员的,有谁没听闻过TP呢?你要是期望招到性价比高、能够马上投入工作的人,借助TP的确能省心好多。再加之那几年积攒起来的数量众多的现成代码量,不管是何种需求,在百度上基本上都能够搜索到一个现成的示例。就算出现问题时你全然摸不着头绪,也极有可能会有已经踩过坑的前辈帮忙解决。
后来呀我尝试着移动脚步去采用别的框架,可始终都觉得要是离开了那种路径方面的指引,就会感觉到浑身都特别不自在。简单来讲,这实际上是存在一种有着相当深厚感情的依赖。况且呢TP团队也一直是在持续进行平台相关的更新工作,举例来说像TP8针对PHP 8+的全面化支持方面做得是非常勤快的。在这一点上真的是不得不给予一个用大大的字体写出来的服字。
的未来
我有时真觉着TP宛如一个从事写代码工作的平常之人。开始的时候没有啥突出之处,随后靠着自身的勤快在中国渐渐稳固住了根基。虽说有些地方并非尽善尽美,然而一直处在野蛮成长进程里持续磨砺自身。
在2020年那个时候,TP6刚刚问世,不少人认为它在各个方面都欠缺完备性。然而当下,TP8+版本已然全都实现了升级,达到了强类型以及PSR合规化的程度。其性能得到了提升,代码也变得更为整洁。从一开始的“只要能运行就可以”逐渐转变为越来越注重工程化,这着实让人感到颇为欣慰。尽管有时候对于老用户而言会存在不太适应的状况,但是人家的确是朝着良好的方向进行改进的,这一点没有任何问题。
不晓得你是不是也曾对TP怀有那种又喜爱又憎恶的感觉,或许咱们应当去承认这样一点,不存在任何一款框架从一开始就是毫无瑕疵的,重点在于在跟它一块儿雕琢项目的这个过程当中,彼此也共同实现成长了吧。
