标题就是我的疑问,还请各位大佬嘴下留情,小人普通码农,混口饭吃,之前写 php 的时候用过一段时间的 swoft ,对 php 常见的生态不算特别了解,但是用了 4-5 年吧,go 火了以后,写了两年 go ,现在手上有个小项目,准备用 php 来操刀(相比 go ,拍黄片还是熟悉的更多),主要是图快和生态,但是不想选择 laravel ,因为项目有网络协议和纯服务端的要求(相比之下有点重了)
swoft 好像没维护了,easyswoole 没用过,听说 hyperf 的语法挺相近的,起了个 3.0 的项目,发现又双叒叕不会 PHP 了,差不多半年多没跟进 php 的框架进度,现在已经演化到 node 的时代了吗?
非引战,纯询问,希望各位佬能给出学习方向已经未来 PHP 的方向,可吹可皮
各位评论官们,小人的疑惑只是对于 PHP 现在的框架生态变化,hyperf 只是一个引起的点,不作为攻击或者任何目标,只是在 golang 、rust 、ts 、node ,各种 web 生态环境大乱斗的情况下,php 作为老牌杀出重围的一位“世纪选手”,养活了很多国内市场(包括我)在内的家庭
我的核心问题是 对于现有 PHP 的生态环境是否过于复杂的讨论,当然也是个人困惑,尤其是面对 go 语言日渐壮大的群体,在这样的考量下,真的追求性能就 phper to goer ,我还是蛮坚信“不是 PHP 不行,是我不行的”至理名言的
最后求各位手下留情,我 PHP 天下无敌
最后一点补充,感谢大家的回复
1
lcy630409 168 天前
换个框架就不会了 是不是应该反思一下自己 有没有深度学习 php....
|
2
jackerbauer 168 天前
还好吧,你依然可以用 fpm 形式运行 PHP 。框架也不少啊
|
3
encro 168 天前 3
没必要 swoole 。
我就一个 fpm 一个后端程序员, 一个 4 核 8G , 也能一年跑上亿的营业额。 数据库优化好点,即使长链接我都不用 swoole 之类的。 我项目主要用 yii 和 symfony 。 但是新项目我打算用 TS 。以后要和 PHP 说 88 了。 |
4
securityCoding 168 天前
@encro 这业务厉害
|
5
9136347 168 天前 7
laravel 把 php 代入了死路
|
6
higanbana OP @lcy630409 也有能力问题吧,不过确实感觉有点过于复杂了,之前 2 我还专门看了他们 hyperf 的教学视频,自己也操作了一番,现在看 3 ,完全一脸懵逼,好多组件被抽出去,需要单独安装,人麻了
|
8
yxzblue 168 天前
多了几个框架 就生态复杂了 楼主要看看 js 大杂烩 才知道什么是复杂 js 把 css,html 的活都包揽了
|
9
ben1024 168 天前
用 PHP 且纯网络可以试试 webman 轻量一些;
未来的方向:laravel 全栈快速产出 MVP |
11
crysislinux 168 天前 via Android 1
重能有多重,访问都没几个,再重能影响到哪儿去,真并发大了就加机器。人家 Drupal 钩子满天飞,一个页面上百个 sql 都不怕。
|
12
encro 168 天前
基于网络的,长链接这块,不用装 php 扩展。。。
也可以用 : https://github.com/ratchetphp/Ratchet https://github.com/reactphp/reactphp |
13
higanbana OP @encro 我方祭出 虚拟服务器 1h1g ,阁下如何应对,用户在 200-300 左右吧,服务不复杂,就是中转请求,带宽 100m 按需计费,业务各种报表算
|
15
yiqiao 168 天前
|
16
dongisking 168 天前
不是过于复杂吧,现在社区呈现一种非常割裂的状态,目前社区为首的 learnku 和 tp 社区都没啥高质量的内容了,还有现在也没啥人活动了。hyperf 的社区没怎么活跃只是少部分人的拥趸
|
19
keller 168 天前
laravel + livewire 爽翻天 连 js 都不用写
|
20
higanbana OP @yiqiao “hyperf 不是和 laravel 很相近吗?会 laravel 对 hyperf 上手没有什么难度”
正如上面所说,文档中确实多次提到某个库是根据 laravel 进行魔改的 我举个例子,按照 hyperf 的文档进行快速入门,结合 一个 demo 库( demo 库地址: https://github.com/limingxinleo/hyperf3.1-demo ) 在 demo 中,作者用了一个包 命名空间是:Hyperf\Constants\Annotation\Constants 包名是:hyperf/constants 您猜怎么着,他不是默认安装的 我对此产生疑惑,首先我拥抱组件化带来的轻便,其次,作为二进宫的 小白,一个轻便且在 2 的时候还能直接使用的并且挂靠在 Hyperf 的命名空间下的,文档没提到任何描述,并且 demo 的时候他摇身一变,到处应用 据我所知,laravel 并没有如此操作(当然这也可能是尾大不掉的问题),但是这对 hyperf 的门槛是否(手动抬高)??? |
21
higanbana OP 各位评论官们,小人的疑惑只是对于 PHP 现在的框架生态变化,hyperf 只是一个引起的点,不作为攻击或者任何目标,只是在 golang 、rust 、ts 、node ,各种 web 生态环境大乱斗的情况下,php 作为老牌杀出重围的一位“世纪选手”,养活了很多国内市场(包括我)在内的家庭
我的核心问题是 对于现有 PHP 的生态环境是否过于复杂的讨论,当然也是个人困惑,尤其是面对 go 语言日渐壮大的群体,在这样的考量下,真的追求性能就 phper to goer ,我还是满坚信不是 PHP 不行,是我不行的至理名言的 最后求各位手下留情,我 PHP 天下无敌 |
22
NoDataNoBB 168 天前
2024 居然还在讨论 PHP ?
|
23
qloog 168 天前
我还是会选 Go 为主+Python 为辅,虽然曾经也用 PHP 😝
|
25
flyqie 168 天前 via Android
没看懂你到底想要什么。
到底是一个网络协议框架还是一个业务框架? |
29
yuwangG 168 天前
是 PHP 卷不动了,然后卷 GO ,现在 Go 也卷不动了,快来门新语言,让他们卷起来。
|
33
Felldeadbird 168 天前
先声明,我写了十年 PHP ,网络方面我很少接触,95%是在写业务 CURD 。
PHP 在纯一个 web 端。不论是展示,还是 API 模式。普通 PHP + Mysql 绝对够用的。不够用肯定是硬件不到位。以前 5.X 时代怎么过来,7.X 还是一样。8.X 还是一样。这是 PHP 优点,也是缺点。 如果你说高并发高可用网络协议,这已经不属于 PHP 可以调解的了。这时候还局限于 PHP 就不对了。 这就是为什么 GO 会拿下 PHP 这方面份额,因为 GO 天生就是是干这个的。 |
34
BBCCBB 168 天前 1
你搞这半天收益都没加个机器来的大?
|
35
flyqie 168 天前 via Android
|
36
higanbana OP @Felldeadbird 老哥这话没毛病,但是 php 从 7 开始,逐渐ლ(′◉❥◉`ლ)魔幻,也开始追求性能上的最优解,我只是不明白,在这样的趋势下,为什么生态有种拖后腿的感觉
|
40
codersdp1 168 天前
生态不复杂(对比前端来看),php 的生态是真滴简单。
|
41
flyqie 168 天前 via Android
@higanbana #36
生态拖后腿这个事,其实我更倾向于是历史原因导致的。 php 正如他最开始的全称一样,纯 web 场景非常多,发展倾向也是比较偏 cgi 的,这也就导致不管是 php 本身还是其生态都对某些方向相对比较冷(而且还有积重难返的情况在,兼容性破坏很要命)。 go 等语言先天就不止局限在 php 所在的主要场景上,所以他的生态发展在方向上会比 php 热闹很多。 这也是为什么 php 走下坡路这么快的原因。 |
42
abccccabc 168 天前
楼主,你的需求不高。我 1H1G 安装了 3 个 php 版本。跑得很嗨。
你说用户才 300 左右,不多。一个 TP 或者 laravel 应该可以搞定。 |
44
JaguarJack 168 天前
PHP 生态相对前端生态,还能较复杂吗? PHP 环境 + composer 就能开发了啊
|
45
JaguarJack 168 天前
@JaguarJack 我的意思 PHP 生态已经很简单了,所以拿个前端对比下
|
46
dilu 168 天前
php 最大的优势还是在与 fpm 模式下 web 业务的快速开发,你既然有网络协议相关的需求,那就用 go 写,然后用 php 调用就可以了。没必要用一个语言去做它最不擅长的内容。
|
47
wmwgijol28 168 天前
纯 API webman 呗 swoole 项目不能复用 composer 生态别搞!
|
48
ifconfig 168 天前
我是 PHP+go 项目都有,现在有种错觉,写多了 go 的静态强类型,写 php 有点没安全感😂
|
50
way2create 168 天前
我是面向工资编程,摆烂很久了,毕竟我在 N 线城市
|
51
cwcc 168 天前
我的感觉是因为 PHP 想要写出来非常容易,但想写好很难。
|
53
way2create 168 天前
PHP 在 v2 不是甭管什么水平的都要踩一脚的嘛 有啥好讨论的
laravel 我也用,但我不会它推荐什么生态就跟着用什么,它那个 homestead 开发环境我就没用过 但我折腾过 wsl 跟 Linux 虚拟机开发环境 自己玩喜欢用新东西 但实际开发还是怎么简单怎么来 基于项目大小跟工资选择技术栈 我只当自己打工的 就好像我并不喜欢 tp 但如果入职了一家工资氛围都能接受的公司 只是用了 tp 那我也会入乡随俗 下班了有兴趣可能会折腾一些东西 但现在手蛮劳损的 下班尽量休息娱乐了 跟 v 友们比起来自然是相当摆烂的 |
54
jason56 168 天前
网络协议通信选 swoole ,我有 N 多个线上 swoole websocket 服务,多年来从未出过问题
|
55
nash 168 天前
php 的宇宙级应用 wp 已经宣布抛弃 php 了
|
56
kfish 168 天前
没必要折腾 swoole 那套东西, 等到需要用 swoole 了, 说明该换个语言实现了
|
58
nash 168 天前
@horizon https://zhuanlan.zhihu.com/p/694429663 这不是说了很久的么
|
59
Jinnrry 168 天前
php 哪里复杂了,就这么点东西,都快凉了的语言能复杂到哪里去?
PS: 1c1g 算啥,我服务器,0.5c 512M 10G 磁盘的服务器上面,部署了 php-fpm 、nginx 、2 个 golang 项目、redis 、mysql ,然后用 docker 管理服务,跑了几年了也没问题。 php 项目是我弟在深圳一个理发店的小程序、公众号,服务器月 300G 流量,通过白嫖 CDN 的方式,存了几万张图片啥的,年流水百万级别。 |
61
dai269619118 168 天前
非得踩 php 的应该只会一门语言...
每个语言他擅长的部分 php 写 web 真的很容易 部署起来也简单 一般的项目接触不到因为一门语言带来的性能问题 |
62
Felldeadbird 168 天前
@higanbana web 端生态已经极致完善了。但是 PHP 也没打算涉足更广的业务,我不懂 C ,也没看多少 PHP 底层,只是觉的 PHP 在非 web 端不够发力,这么棒的语法,用在写小工具上,怕要卷死一推语言了。
|
64
Features 168 天前
两三百个用户,都是同时在线吗?
否则 1c1g 也够用了,最大的担心是 mysql 会不会出现 too many connection ,memory resize 之类的 除非你的程序不是常规的业务 否则不管是 fpm 还是 socket ,瓶颈都不可能在程序端 什么东西都要花时间学习的,swoole 这类框架,已经跟 php 开发没有很大关系了 他有其他更多的坑需要踩 |
65
james122333 168 天前 via Android
写 php 方便刻轮子 毕竞内建函数就可以做很多事 一般 plugin 如 db 性能也很给力 毕竟是用 c 写的 现在来看还是不错 新版的内建类型检查也不错 可静可动 缺点就是纯解释器以及出现了引入複杂度的重型框架
go 最大痛点就是没办法写 multidimensional array 精简化的那种 直接表示出结构 外加 go 整个包并不轻量 安装就是几百兆大小 针对嵌入式的 tinygo 更是破千兆包大小 与 tiny 两字沾不上边 只不过相比 java 还是好一点 毕竞还是可以写出简单又运行不错的程序 替自己省下烦恼 |
66
james122333 168 天前 via Android
至于很多人强调的生态很不认同 尤其是过重的生态 那是奴役人用的 程序应该是开发者的工具 而不是程序员整天为了学一些没有营养的疲劳轰炸 到最后寿命没了挂了
|
67
jeesk 168 天前
和 java 比呢? 有人吐槽 java 的生态吗?
|
68
nong99 168 天前 via iPhone
所以 php webapi 推荐什么框架上呢
|
70
langziyang 168 天前
建议看 symfony
|
71
BeforeTooLate 168 天前
我个人感觉以前框架不是完全面向对象,现在的框架更抽象,只是要个习惯过程。
|
72
win7pro 168 天前
你的目标是完成项目,还是用最新的框架做一个项目?
|
74
Genshin2020 168 天前
你是上了就用框架写 PHP 么,我是 13 年从 PHP 入坑开发的,当时也没有什么框架,yaf 算当时比较好的选择,但是我个人项目,私活都是用 PHP 原生开发,就自己写个简单的框架,CURD 那套,后来 laravel 啥的上手也没有多费劲,感觉是 OP 没有把基础打好吧。
PS:现在会 N 种语言,发现它们有自己擅长的方向,不要被框架束缚了, 多了解一下原生语言。 |
76
k9982874 168 天前
php 已经进化到这个阶段了吗?我还停留在 fpm 时代...😨
|
77
sun2920989 168 天前
不只是项目问题,你们有没有觉得.以前都说 php 开发上手快.但是我发现这个上手它是不是只包含写代码的部分,不包括搭建环境啊.给 php 加 mysql redis mq 等等一堆扩展后.我真觉得 php 的开发环境搭建过于不友好.
|
78
sun2920989 168 天前
@sun2920989 补充,近十年 php 目前 java go 都在做.对比来看,开发环境这方面 php 真的麻烦许多,mq 甚至要自己编译特定版本.
|
79
meshell 168 天前
@sun2920989 这样么,不是直接 pecl install mq 么。😭
|
80
sagaxu 168 天前 2
PHP 生态也不好啊,最近几年新出的东西,很多不提供 PHP 的 SDK ,比如 OpenAI ,Java/Python/Go/.NET/JavaScript 都有官方 SDK ,PHP 是没有的。就业市场 PHP 也是萎缩的十分剧烈,好像用 PHP 的公司消失了一般,都改用 Go 了,及早放弃 PHP 吧。
|
81
yekern 168 天前
简单可以用 php 的微型框架 slim 跟 Go 的 gin 一样只基本只提供一个路由支持, 其他的可以通过 composer 来添加你想要的功能.
我们现在也还在用 PHP 还是用的 Laravel,做跨境业务,周流水都在百万美元左右, 机器也不多就 3 台机器, 一台 8C16G MYSQL 2 台 4C4G 的做 PHP 服务器一样跑的顺顺的. |
83
Actrace 168 天前
php 的生态繁荣不是好事么,正好说明还有人在玩。
但是,你可以选择不用框架啊,直接写原生就好,什么负担都没。 |
84
loginv2 168 天前
webman 挺好的 Laravel 不习惯,以前用 yii2 多,现在自己干活都是 webman 了
|
85
sayitagain 168 天前
@Genshin2020 我也刚好 13 年入坑的。。。团队把 discuz 简化了下弄了个框架
|
87
Bi8boo 168 天前
我记得年前看过一篇写 PHP 的文章: https://www.zentao.net/dynamic/php-report-zentao-83020.html
|
88
bzj 168 天前
@crysislinux drupal 有页面静态缓存技术,其次主要做内容管理,真项目要那样玩早卡死了
|
90
sun2920989 168 天前
@meshell 以 rabbitmq 为例,印象中需要先编译安装 rabbitmq 然后 pecl 安装 amqp 扩展 还需要指定 rabbitmq 安装目录什么的.反正觉得不方便.相比较 maven install 或者 go mod tidy.麻烦了很多.
|
91
ztxcccc 168 天前
现代 php 社区 symfony 一家独大,其他框架开 symfony 轮子
传统 php 基本就那些经典项目,有一些也开始开 symfony 轮子了 要玩协程的话选择就没有那么一目了然了 |
93
edk24 167 天前
1h1g 编译 swoole 扩展都很吃力吧,对配置吃紧就用 go 吧。 我觉得语言没有高低之分, 合适的场景就应该选合适的语言
|
94
9136347 167 天前
@HFX3389 我做了很多年的 php ,后来做运维,各种 php 的调优, 后来转了写 golang 。
我认为这个框架把 php 代入死路的原因就是,本来 php 的性能就是短板,不管是网络的 io 性能还是执行效率。但是 laravel 做的呢,就是把 php 代入到一个极致复杂,近乎不考虑性能的地步啊。 你本身就有一个短板,被人抓住小辫子。还把这个鞭子做大做强。这不是代入死路吗? 关键是还有一堆忠实的拥趸,认为效率不重要等等。确实,我们公平的看,我们做的很多都是中小项目,不那么重药。但是站在决策者的角度,和我们做事的角度能一样吗?有明显的问题,说服不了决策者。就是死路一条了。 |
95
ztxcccc 167 天前
@9136347 symfony 和基于 symfony 轮子的各种现代化 PHP 框架基本都有缓存构建,在执行前都会编译,实际没有那么慢
况且放在所有 web 里这也不是最慢的框架,其他语言大把更慢的框架不一样有人写 |
97
quqivo 167 天前
thinkphp 完全够用
|
98
forty 167 天前
只有我最 low, 没学习任何 PHP 框架,我写的“原始”PHP 都跑在 IIS 环境,偶尔 apache.
|
99
tojike 167 天前
不复杂,java 是必学 Spring 系列,基本被统一了。php 就没有这个要求 FPM:yii laravel thinkphp swoole workerman 各自有各自的风格,甚至自己手搓一个框架都可以。挺好的
|