PHP 为什么是最好的语言?你肯定听过这个段子:
上面虽然是程序员的玩笑梗,但“PHP 是最好的语言” 这句话最早可能出自 2001 年 7 月的 PHP 官方文档。
抛开玩笑梗,认真来说,PHP 的确称得上最好的语言之一。 首先,PHP 入门简单,容易掌握,对新手友好,而且程序健壮性好,不容易出现像 Java 、 C++ 等其他语言那样复杂的问题,如内存泄漏和 Crash ,跟踪调试相对轻松很多。 再者,功能函数应有尽有,不需要重新造轮子。PHP 官方提供的标准库非常强大,各种功能函数包括MySQL、Memcache、Redis、GD图形库、CURL、XML、JSON等等都能找到,免除了开发者到处找库的烦恼。 另外,PHP 文档详细易懂,每个函数都有仔细的说明和使用示例。第三方类库和工具、代码、项目也很丰富。开发者可以快速、高效地使用 PHP 编写开发各类软件。 可以说,目前为止市面上仍然没有出现比
PHP 更简单易用的编程语言。然而,自 PHP 诞生到现在的 20 多年间,从 Web
时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js 、 GO 、 Python 不断地在挑战 PHP
的地位。PHP 语言的局限也开始凸显,PHP 语言未来在哪里?PHP 程序员当如何应对未来的变革? 性能问题PHP 最令人诟病的一点非性能莫属,作为一门动态脚本语言,PHP 的优点是开发方便效率高,缺点就是性能差。在密集运算的场景下比 C 、 C++ 相差几十倍甚至上百倍。另外 PHP 不可以直接操作底层,需要依赖扩展库来提供 API 实现。 使用 PHP7 PHP7
版本对 Zend 引擎做了大量修改,大幅提升了 PHP 语言的性能,使用 PHP7 可以使程序性能瞬间翻倍。即使是 WordPress
这样重量级的软件运行在 PHP7 都能有上千 QPS ,相当于一台服务器每天就能处理 8000 万次请求。使用 PHP7 ,做好 MySQL
优化,使用 Memcache 和 Redis
进行加速,这套技术架构完全可以应对相当大规模的系统。除了某些亿级用户的平台之外,一般规模的系统完全没有压力。 学习 C/C++/GO PHP
程序员可以学习一门静态编译语言作为补充实现动静互补,C/C++/Go
都是不错的选择。而且静态语言的编程体验与动态语言完全不同,学习过程可以让你得到更大的提升。掌握 C/C++ 语言后,还可以阅读 PHP 、
Swoole 、 Nginx 、Redis 、 Linux内核 等开源软件的源码,了解其底层运行原理。 现在最新版本的Swoole提供了C++扩展模块的支持,封装了Zend API,用C++操作PHP变得很简单,可以用C++实现PHP扩展函数和类。 管理规范Composer Composer
出现后,PHP 的依赖管理可以变得非常简单。程序内依赖一些类库和框架,直接使用 Composer 引入即可,通过使用 composer
update 安装依赖的包。解决了过去加载外部库的各种难题。Composer 也有国内镜像,速度非常快。现在绝大部分PHP开源的项目都提供了
Composer 的支持,建议大家在项目中使用 Composer 来解决 PHP 代码包管理的问题,不要再使用下载源码、手工 include
的原始方法。 PSR PSR
是 http://www.php-fig.org/ 组织制定的PHP语言开发规范,约定了很多方面的规则,如命名空间、类名规范、编码风格标准、Autoload、公共接口等。现在已经成为PHP技术社区事实上的标准了。很多知名的
PHP 框架和类库都遵守了 PSR 规范。PHP 开发者应当学习掌握 PSR 规范,在开发程序时应当尽量遵循 PSR 规范。 应用扩展Vue.js PHP
程序员除了写后台程序之外,还有很大一部分工作在展现层,和浏览器前端打交道。2017 年你还在用 jQuery 操作 DOM
实现界面渲染吗?已经完全 out 了。现在用 Vue.js 可以非常方便地实现数据和 DOM 元素的绑定。通过 Ajax
请求后台接口返回数据后,更新前端数据自动实现界面渲染。 如果你不光要写 Web 程序,同时还希望兼顾 Android 、IOS 、PC 客户端等平台,React Native 是一个不错的选择。 Swoole PHP 还局限于做 Web 网站吗?Swoole 是一个异步并行的通信引擎,作为 PHP 的扩展来运行。Node.js 的异步回调 Swoole 有,Go语言的协程 Swoole 也有,这完全颠覆了对 PHP 的认知。 使用
Swoole PHP 可以实现常驻内存的 Server 程序,可以实现 TCP 、 UDP 异步网络通信的编程开发。过去PHP只能做一个
Web 网站,现在使用 Swoole 可以做 Java 、C++ 才能实现的通信服务,比如 WebSocket
即使通信、聊天、推送服务器、RPC 远程调用服务、网关、代理、游戏服务器等。 |