讲师中心 微信公众号
AI工具推荐 视频效率加速

看了laravel的php框架怎么感觉很不靠谱?

大杰酱_4695

大杰酱_4695

发布时间:2016-06-06 16:41:55

|

1544人浏览过

|

来源于php中文网

原创

听说laravel挺火,就用看了一下,没有深入去看,算是只看完快速入门,看了以后有点失去兴趣了,特来知乎请教一下。如果这东西都是用composer的方式调入各种第三方的包来完成任务,那么灵活性是不是太低了一点,虽然没有重复造轮子,但是最后大家弄出来都是一样的轮子,还有安全性好保证么,听说效率也不高啊。如果不使用第三方包的情况下,能加快多少开发速度呢?会不会反倒不如其他的框架?

追加:有些回答觉得我对laravel不够深入所以评价不客观,ok,我想这也是有可能的,虽然第一感官不好了,但为了不武断作出结论,我决定继续深入下去,如果不好,到时候再回来反驳你们,哼哼,=P。

Discussion Composer
Discussion Composer

围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par

下载

回复内容:

子之武城,闻弦歌之声。夫子莞尔而笑,曰:「割鸡焉用牛刀」。 --- 《论语》
我们学习一个框架,不是因为他简单易学,而是因为他高效强大。

Laravel 框架的出现,将 PHP 的后端开发带入了一个新的高度,其中的 composer 和 PHP-FIG 等,标志着 PHP 已经不再仅仅是“前端语言”、“展示层语言”了。

PHP 的特点就是易于入门,而且 PHP 是一个语法大杂碎,汇集了 C Perl 等等,当年我学了半天时间,就可以拿来做网站了。

对于框架,大部分 PHPer 会首选 ThinkPHP 或者 CI。因为这几个框架的门槛和 PHP 的门槛很对口。如果像 Java 那样,学习半年才能做开发,大部分的 PHPer 是接受不了的。如果一个框架(比如 SSH)需要学习半个月才能上手,PHPer 们也接受不了,于是 TP 和 CI 框架大行其道。(PHP 界和 SSH 框架媲美的 ZF 也被 PHPer 鄙视为大而无用,处处透漏这 Java 的臭毛病)

随着 Laravel 的出现,我毫不犹豫的从 CI 转入了 Laravel 阵营。

如果你仅仅是为客户写一个网站,那么即使原生的 PHP 也可以应付,如果想再提高点儿效率,可以选用 TP 或者 CI。

但是,如果你是为公司或者自己开发一个项目,这个项目准备运营五年以上,那么 CI 的弊端就凸现了。五年间,CI 估计都已经升级了 N 版了,PHP 也升级了 N 版了。你升级吗?

项目是在本地开发调试完成,当上线后遇到问题了,我们如何查找,如何跟踪呢?最通常的办法就是 log。现在几乎每个框架都有 log 功能,但是 Laravel 的又一强大之处就是他的 log 遵循 PHP-FIG,也就是以后你可以随意更换 log 的实现类以提高性能。这就好比我们的 PC,它上面都有 USB 接口,这样我们就可以任意更换 USB 设备,比如 USB 鼠标,USB 键盘,USB 硬盘等。而 Laravel 依据 PHP-FIG 标准提供日志接口,我们只需要更换实现。

那么现在问题来了,挖掘机……,现在很多 PC 支持了 USB 3.0,这时,我们买硬盘的时候就可以买支持 3.0 的,以达到更高的速度。Laravel 使用 composer 管理包依赖。
如果这东西都是用composer的方式调入各种第三方的包来完成任务,那么灵活性是不是太低了一点
使用 composer 不是为了调入,而是为了管理,管理包,以及各种包的版本。这样就解决了各种包的兼容问题。而在 composer 出现之前,PHP 依然没有有效的方法解决这些问题。如果我们需要一个 Excel 的导入导出功能时,就去搜索 PHP 的 Excel 库,大部分情况是去官网下载最新的稳定版本。如果出现问题了,就去谷歌或者百度搜索,“我去~原来是版本问题,这个库使用了匿名函数,PHP 5.3 不支持,哎,只能下载以前的版本了~~”。

Composer 将工程化的思想带入了 PHP。

如果不使用第三方包的情况下,能加快多少开发速度呢?

如果仅仅是开发速度,Laravel 无疑是低效的,笨重的。这显然和“世界上最好的语言”不相搭配。但是如果你开发过大中型项目就会发现,编码(Coding)其实在整个项目阶段,连三分之一都占不到。再退一万步讲,开发周期也许是3个月,但是整个项目的生命周期确实3年啊。

如果你的行程是10公里,那么无疑开车是最快的,如果坐飞机的,估计还没有来得及起飞呢。如果行程是100米呢,走路无疑是最快的。

再说说另一个被 PHPer 忽略的问题,那就是单元测试。同样是 MVC 框架,但是 PHPer 很多是为了 MVC 而 MVC,为了设计模式而设计模式。知其然而不知其所以然。如果问一个 PHPer 为什么使用 MVC,为什么使用模式,估计大部分都答不出来。

今天下午还在 sf 看到一个类似的提问,大意是 ThinkPHP 的模型有什么用,这些代码完全可以写在控制器里面,这样速度还快。诚然,大部分 PHPer 不知道为什么要分层架构,即使使用了框架。

谈到分层,任何一个 java 框架都可以甩 PHP 几条街。(PS:从我的名字可以看出,我是java粉,但我也坚信 PHP 是世界上最好的语言)

现在有一个控制器,处理转账。在这个流程中,需要表单验证、控制器处理业务逻辑、持久化(存储到数据库)、渲染视图,还有一些安全处理、日志功能等。

在传统的 PHP 开发过程中,都是:编码,运行,调试改错,直到运行成功,然后打开浏览器,输入数据,点击执行,看结果,如果正确,再次输入数据,如果错误,修改,调试,再打开浏览器,重复,重复,知道自己满意为止。

我们也可以使用 PHPUnit,我们把转账功能写到一个(几个)单独的类里面,测试转账的核心功能。但是我们要想测试控制器,模型,则还需要一些黑魔法。如果在 SSH 中,就 So Easy 了,任何一个模块都可以单独拿出来进行单元测试。因为任何一个模块,都可以脱离 SSH 框架而单独运行。

在 SSH 中,我们可以把控制器拿出来,放到 JUnit 中测试控制器的功能。我们也可以把路由器模块拿出来,测试 URL 路由是否正确。等等。而在 PHP 的 CI 或者 TP 框架中,控制器不可能单独拿出来进行测试。

而 Laravel 对于 PHP 的工程化的另一个贡献就是——可测试性。 额。。。额。。。额。。。
PHP好不容易有了composer,你居然说这货没用?框架的更多目的是为了项目的可持续性,而不是能有多快的去开发一个项目。。

在这个什么都要迭代更新的年代,没有可持续的架构,就是废的。

你的系统如果有上百个功能,每个功能之间还有一定的依赖,除了包管理,还有什么好的方式,让几百个人的团队来有序开发? 强烈推荐学习laravel,你会发现在学习过程中,你会学习到框架之外的更多知识
1.如何翻墙,因为composer的安装和使用在墙内的速度是令人发指的
2.如何翻译,因为laravel的文档大部分是英文的,比如laravel5.1是6月发布的,直到今天10月19日,完全汉化的文档还是没有。
3.如何撕逼,你要对面用TP的人的不理解,用Yaf的人的鄙视,用Yii的人的试探的目光
4.如何运维,项目上线后,面对性能低下的问题你需要redis memcache opcache php7 hhvm 等等等优化性能的方案

以上! 首先,我个人挺喜欢laravel的。但是,我觉得没必要神话 laravel。
慢慢更……嗯。
/**********************************************************************************/
composer
只是为了方便你不用重复造轮子,其本身其实和laravel 一点儿关系也没有。
laravel只是可以用 composer 而已。 没有 laravel 你也可以用 composer ,
比如 CI3.0就支持 composer , 甚至你不用框架 也可以用 composer 。
composer的特性 和 laravel的特性 没关系……

composer 和 laravel 并不会 妨碍 你的项目代码的 自由度。

难道,当核心业务、核心数据相关的组件出现BUG的时候,
你还非要等 composer 更新版本以后 才能修正BUG吗?
当然不是的……
难道 laravel里,你就不能写 include 来引入文件, new一个对象了吗?
当然也不是的……

框架的存在,并没有缩小你写代码的自由度。
而只是提供给你了一个规范:
按照这个规范写,就可以享受这个规范带来的好处,
而自然也必然的会受到规范的约束,承受规范的坏处。

/**********************************************************************************/
重复造轮子这个事情,并不是完全无意义的
——哪怕是在工作项目中。

很多时候,可以找到的轮子是不合用的,
这种情况下就必然的需要改造轮子,乃至重做轮子。
这是很正常的事情,没必要惧怕重复造轮子。

当然、一定要评估使用旧轮子、改造旧轮子、重做新轮子之间的利弊,
权衡利弊之后再做出决定。
/************************************************************************************/
像 @justjavac 说的 LARAVEL的单元测试概念,确实是很好的。
这个确实是LARAVEL非常吸引人的地方!!!
不过如果说因为laravel支持 PHP-FIG 或者 JUnit ,我们就要支持它。
确实还是要针对不同的项目来看的……
选择自己的项目合适的框架,比起死忠一个框架 更有意义。

至于大项目……
现在存在多少 持续5年以上,单一系统维护人员超过100人的PHP项目 ?
我想并不是很多吧?
我接触到的单一系统很大的项目非常少见,
更多的还是N个小型的子系统共存的项目。
而这样的项目 如果刨除单元测试等优势……
LARAVEL有多少优势吗?感觉并不是太明显……
[当然,也可能是我没有接触过足够多的“大中型项目”的原因^_^]
/*****************************************************************************************/
LARAVEL 和 CI 给我的感觉:


CI3.0 像一个工具箱。我可以很方便的从中找出需要的工具,进行使用。通过工具箱里的工具,我也可以加工出很多方便的小工具来用。

LARAVEL 像一个车床。车床可以制造的工具和制造工具的速度,并非是工具箱可以比拟的。但是想要车床制造出工具箱里的工具来,需要下的力气也不是工具箱可以比拟的。 感觉你的需求和能力与Laravel提供的价值并不在一个位面上 Laravel的设计思想是很先进的,非常适合应用各种开发模式TDD, DDD和BDD,作为一个框架,它为你准备好了一切~~composer简直就是个php的未来,没有composer,PHP肯定要走向没落~~
对于新手来说,上手度不是很高,特别是新推出的Laravel 5, 但是学习价值非常高~~你想知道php行业里面的最新编程思维,学Laravel吧LaraBase——全栈工程师之家 其实很多事情并不复杂,怕的是复杂的理论内容。很多东西一旦想通也就那么回事儿。很多人觉得 laravel 这不好那不好、这里难哪里难,我只能说,laravel 的确不是一流和优秀的框架。laravel最大的特点和优秀之处就是集合了php比较新的特性,以及各种各样的设计模式,Ioc容器,依赖注入,等等。因此laravel是一个适合学习的框架,他和其他的框架思想有着极大的不同,这也要求你非常熟练php,基础扎实。如果你觉得laravel很困难 那么原因只有一个 你php基础不够好。

另外,善于利用命名空间和面向对象的诸多特性,去追寻一些东西,你会发现,原来这一切这么容易。 任何事物存在都有其存在的理由,不能一棒子打死,应该取其长 补其短 看了路由和orm部分,和前端backbone之类的结合应该很契合,还是很不错的,另外composer是个很好东西,关于效率问题,web程序的运行效率从来就不在框架,而在数据库,框架那一点点消耗根本不会是什么负担。

补充一下,之前说框架的消耗忽略不计也是不完全正确的,有个奇葩的,从前用drupal二次开发的时候一个简单的列表页面竟然单线程消耗20多M内存,原因就是drupal本身的配置太复杂了(不是我的配置复杂,而是系统本身复杂),为了内容配置的最大自由度,什么变量都往页面里塞。去stackoverflow上问了,得到的回答是drupal里这是正常的。。drupal总的来说也是一个框架,只不过这个框架带着一个cms系统而已,当然这样的系统对外是必须一系列优化才能用的。。

laravel框架还是蛮不错的,可以说非常全面,配合phpstorm开发还是很开心的。。

分享两套教学视频,自己从laracast.com上一个一个拖下来的,无字幕。。
laravel-whats-new 链接: 百度云 请输入提取密码 密码: 6cwy
laravel-fundamentals 链接: 百度云 请输入提取密码 密码: aw2h

还有一个phpstorm使用经验的分享,如果还用sublime甚至zde的朋友尽快换phpstorm吧,可以说sublime的功能它都有,但还有一些高级ide才有的功能,另外即使是vim的用户也应该尝试一下,phpstorm有插件也可以模拟vim的操作,并享受其他好处。
how-to-be-awesome-in-phpstorm 链接: 百度云 请输入提取密码 密码: hgga 我观察到一个现象:通常觉得Laravel难学且无用的开发者中,只会PHP一门语言,或者说,没有静态编译型语言(如C/C++/Java/Go等)使用经验的开发者占绝大多数。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

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

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

60

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

20

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

20

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

20

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

20

2026.09.22

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

20

2026.09.22

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

20

2026.09.22

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

40

2026.09.22

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

60

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何安装 Composer
如何安装 Composer

共1课时 | 181人学习

Composer手册
Composer手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn