当前位置: 首页 > news >正文

十年程序员用眼告诉你 2018 PHP 不一样

2018   PHP 

PHP从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js 、GO和Python不断地在挑战PHP的地位。这些技术的推动者非常热衷于唱衰PHP,PHP语言的未来在哪里?PHP程序员当如何应对未来的变革?

作为老牌的Web后端编程语言,PHP在全球市场占有率非常高,仅次于Java,从各个招聘网站的数据上来看PHP开发的职位非常多,薪资水平也非常不错。实际在中小企业、互联网创业公司PHP的市场地位是高于Java的。Java在超大型企业、传统软件行业、金融领域优势更大。目前来看 Node.js、 GO 、 Python 、 Ruby 等语言还难以企及PHP和Java。

PHP语言之所以能有今天的地位,得益于PHP语言设计者一直遵从实用主义,将技术的复杂性隐藏在底层。PHP语言入门简单,容易掌握,程序健壮性好,不容易出现像Java 、 C++ 等其他语言那样复杂的问题,如内存泄漏和 Crash,跟踪调试相对轻松很多。

PHP官方提供的标准库非常强大,各种功能函数都能在官方的标准库中找到,包括MySQL、Memcache、Redis、GD图形库、CURL、XML、JSON等等,免除了开发者到处找库的烦恼。PHP 的文档非常棒,每个函数都有详细的说明和使用示例。第三方类库和工具、代码、项目也很丰富。开发者可以快速、高效地使用PHP编写开发各类软件。

到目前为止市面上仍然没有出现比PHP更简单易用的编程语言。所以PHP的前景还是很广阔的,与其纠结于编程语言的选择,不如好好地深入学习使用PHP 。

作为一个资深的PHP开发者,在技术上给各位PHP程序几点未来的建议,希望对大家有所帮助。

01   Composer

第一点就要提Composer,自从Composer出现后,PHP的依赖管理可以变得非常简单。程序内依赖一些类库和框架,直接使用Composer引入即可,通过使用composer update安装依赖的包。解决了过去加载外部库的各种难题。

Composer也有国内镜像,速度非常快。现在绝大部分PHP开源的项目都提供了Composer的支持,建议大家在项目中使 Composer来解决PHP代码包管理的问题,不要再使用下载源码、手工include的原始方法。

02   PHP 7

PHP7版本对Zend引擎做了大量修改,大幅提升了PHP语言的性能,使用PHP7可以使你的程序性能瞬间翻倍。即使是WordPress这样重量级的软件运行在PHP7都能有上千QPS,相当于一台服务器每天就能处理8000万次请求。

使用PHP7,做好MySQL优化,使用Memcache和Redis进行加速,这套技术架构完全可以应对相当大规模的系统。除了某些亿级用户的平台之外,一般规模的系统完全没有压力。

03   PSR

PSR是PHPFramework Interop Group 组织制定的PHP语言开发规范,约定了很多方面的规则,如命名空间、类名规范、编码风格标准、Autoload、公共接口等。现在已经成为PHP技术社区事实上的标准了。很多知名的PHP框架和类库都遵守了PSR规范。

PHP开发者应当学习掌握PSR规范,在开发程序时应当尽量遵循PSR规范。

04   Swoole

2017年PHP还局限于做Web网站吗?No,如果你还不知道Swoole,赶快去了解一下吧。Swoole的口号是重新定义PHP语言,Swoole是一个异步并行的通信引擎,作为PHP的扩展来运行。

Node.js的异步回调Swoole有,Go语言的协程Swoole也有,这完全颠覆了对PHP的认知。使用Swoole PHP 可以实现常驻内存的Server程序,可以实现TCP、UDP异步网络通信的编程开发。

过去PHP只能做一个Web网站,现在使用Swoole可以做Java 、C++才能实现的通信服务,比如WebSocket即使通信、聊天、推送服务器、RPC远程调用服务、网关、代理、游戏服务器等。如果你想用PHP做点Web系统之外的东西,Swoole是最好的选择。

05   Laravel

最近几年最火热的PHP框架,官网号称是为Web艺术家设计的框架,可见这套框架有多优雅。Laravel提供的功能模块丰富,API设计简洁,表达力强。而且它的社区非常活跃,代码贡献者众多,第三方的插件非常多,生态系统相当繁荣。

Laravel底层使用了很多symfony2组件,通过composer实现了依赖管理。如果还在纠结使用什么PHP框架,不如选择 Laravel。Laravel提供的命令行工具基于symfony.console实现,功能强大,集成了各种项目管理、自动生成代码的功能。

06   Phar

PHP5.3之后支持了类似Java的jar包,名为phar。用来将多个PHP文件打包为一个文件。这个特性使得PHP也可以像Java一样方便地实现应用程序打包和组件化。一个应用程序可以打成一个Phar包,直接放到PHP-FPM中运行。

配合Swoole,可以在命令行下执行php server.phar 一键启动服务器。PHP的代码包可以用Phar打包成组件,放到Swoole的服务器容器中去加载执行。

      转自:程序师

      链接:http://www.techug.com/post/php-in-2018.html

推荐阅读

《PHP和MySQL Web开发》

(原书第5版)

ISBN:978-7-111-58773-6

作 者:[美] 卢克·韦林, 劳拉·汤姆森

译 者:熊慧珍 武欣 罗云峰

定 价:129.00元

出版时间:2018/01

内容简介:

1、PHP和MySQL Web应用开发圣经  Luke Welling最新力作.

2、覆盖PHP 5.6和PHP 7,以及MySQL 5.7

3、通过真实示例,讲解如何从零开始利用PHP和MySQL构建大型或电子商务类型的Web站点.

4、原版书中后4章的在线内容(几个大的真实实例)已涵盖在中文版纸质书中,方便读者参考.

版本更新

第5版在第4版的基础上进行了全面更新、重写和扩展,详尽介绍了PHP 5.6和PHP 7的版本更新和新特性,此外还介绍了MySQL的最新版本MySQL 5.7的新特性

点击“阅读原文”查看书籍详情

相关文章:

  • 第3届《洞见区块链·深度探索区块链》技术沙龙
  • 干货丨Spark度量系统分析
  • 刚入门区块链的程序员应该看什么?
  • 程序媛的芳华,女神节快乐!
  • IT程序员如何披荆斩棘?教你几招可好
  • 盘点那些让程序员目瞪口呆的Bug都有什么?
  • 世间再无霍金,时间永留简史!
  • 程序员需要具备哪些能力才能找到一份月薪2W+的工作
  • IBM展示“世界最小电脑”成本只有10美分
  • 【洞见区块链】众专家探讨企业级区块链未来之路
  • 2017年图灵奖得主:荣誉属于体系架构
  • 撸猫游戏已洗牌,传统游戏将上链
  • 2018 区块链技术及应用峰会(BTA)
  • 疯狂天才乔治·霍兹:17岁黑掉苹果,22岁搞垮索尼,还是特斯拉、谷歌最可怕的对手!...
  • 《奇点艺术》, 颠覆性的科技艺术著作!
  • 深入了解以太坊
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 2017 年终总结 —— 在路上
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • chrome扩展demo1-小时钟
  • gcc介绍及安装
  • JavaScript设计模式与开发实践系列之策略模式
  • MYSQL 的 IF 函数
  • passportjs 源码分析
  • React-redux的原理以及使用
  • spring学习第二天
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 免费小说阅读小程序
  • 悄悄地说一个bug
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • FaaS 的简单实践
  • ​Spring Boot 分片上传文件
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C++20) consteval立即函数
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (Ruby)Ubuntu12.04安装Rails环境
  • (二)PySpark3:SparkSQL编程
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (接口自动化)Python3操作MySQL数据库
  • (南京观海微电子)——COF介绍
  • (转)http协议
  • (转)拼包函数及网络封包的异常处理(含代码)
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • @ModelAttribute 注解
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [145] 二叉树的后序遍历 js
  • [BUG] Authentication Error
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [CentOs7]搭建ftp服务器(2)——添加用户
  • [git] windows系统安装git教程和配置
  • [HarekazeCTF2019]encode_and_encode 不会编程的崽
  • [hdu 1711] Number Sequence [kmp]