目录

php也只是工具

我在大学时代学的java,第一份工作java转的 php 开发,用过 php-fpm 也用过 swoole。

应该说 php 是很优秀的语言,很实用,很接地气。但它本质上是一个模板脚本。虽然 php7 相对 php5 性能有不小的提升,终归是解释执行。用来做web是没有问题的,但用纯 php 做服务就很牵强了。毕竟不支持多线程。

php其实就是应用层语言,所以他也是需要底层语言去实现具体的功能服务,相当于调用了系统扩展接口,所以 php 有很多扩展,比如 php-sockets、php-posix、php-pcntl、php-libevent,当你真正要用 php 写服务的时候,少不了要用到这些扩展。

php 慢慢像是一个胶水语言,把不同的功能服务连接到一起。

php用得越深,离 php 也就越远。

swoole 的历史不算短,他的功能我们也可以使用相关的扩展接口组合实现(其实php已经有自己的协程实现方式)。swoole 号称的高性能和高并发能力是针对磁盘/网络 io 而言的。

如果你的业务逻辑本身很重,你的工作进程会被持续占用,swoole 的高性能网络框架也是帮不了你的。在这种情形下,swoole 提供的惟一好处就是常驻内存,无需反复加载资源。这个特性恰恰又可能导致内存泻露。

使用 php 一定会遇到瓶颈,这是 php 本身的局限性导致的。但这并不意味着 php 不值得学习。随着学习的深入,你会掌握越来越多的系统编程思路。时机到了,你终归是要转向其他语言的。

最后需要说的是软件工程。php 写的项目也要讲软件工程,也要讲设计模式,也要讲代码分层,这些东西都是语言无关的。用 php,爱 php,就要认真对待 php。我们是程序员,面向的是计算机,而不只面向某一种语言。时代在前进,技术在演化,不断学习、终身学习是我们惟一的选择。

///待续

@tsingchan