PHP 的运行方式有哪些?
PHP本质上的运行方式可以分为两种:
- 基于命令行的
- 基于PHP-FPM的
但实际上,PHP能做的事很多,很多场景下,不同的运行方式能让开发更方便,减轻各种工作。
PHP内置了一个HTTP 的server。这意味着,很多时候,我们不需要nginx、apache、php-fpm、配置站点等等繁琐的操作,直接就可以运行php的代码。
比如这样简单的一行命令:
此时当前目录下的各类html、静态文件、php代码就都能正常返回运行了。
可以定义一个路由文件router.php,设置一些规则:
上面的路由文件定义了,当请求图片时返回图片,否则返回一段html代码。
ThinkPHP自5.1的版本起,内置封装了PHP的内置服务器。只要再TP项目下运行命令:
这样这个框架就运行起来了,不需要配置Nginx、Apache、静态规则、站点的目录、域名host等等等,一行命令就可以开始开发了。现在我在本地开发的时候,只把对应版本的PHP配置到环境变量里,其他的各类nginx等软件一律不用,开发非常方便。
不过这种方式只能用于测试开发或者临时演示来用。PHP的内置服务器不能处理并发请求,所有的请求(包括css、js等文件)都只能一个一个的处理。但是做开发是完全足够的。
PHP的FPM是黑科技,这是真的,稳如老狗,怎么折腾都不会出问题,每个请求之间隔离得清清楚,互不影响,这一点当你在用Java、Node、Go等Http框架下开发时就会体会到了。
一般而言,PHP-fpm和nginx配合。这也是最常见的运行方式,资料很多,也有很多成熟的面板帮助开发者配置,这里不多介绍。但这里希望强调一点,一定要开启opcache、一定要开启opcache、一定要开启opcache。
开启opcache之后,直接无脑的获得巨大的性能提醒。如今的PHP项目,PHP代码很多,因为使用composer依赖等,随随便便几百个文件或者小一千个文件是常态,有些重量级框架动辄几十M甚至上百M的代码,如果不开启是opcache,老狗也会难受。
PHP有各种内置的网络编程扩展和函数,但是用起来比较麻烦,不直观。但是现在有很多成熟且流行的网络编程框架,可以基于TCP和UDP协议进行各类业务的开发,比如例如即时通讯类、物联网、游戏、服务治理、其它服务器或者中间件、微服务等。
我也多次介绍过这些项目了,他们也都很热门,这里不再过多介绍:
基于官方扩展使用纯PHP开发的网络编程和进程管理库,内置进程守护。
Swoole
纯C开发的PHP扩展库,高性能、协程。
ReactPHP
像Node一样的事件驱动框架。国外热门主流,衍生了非常多的有趣的项目,比如有人用它实现了一套Redis server。
Swow
使用C和PHP实现的一套框架,专注于IO。
GatewayWorker
基于Workerman开发的长连接框架,开发体验极佳,自动抹平协议沟通,实现TCP、websocket等各种协议的对接,支持分布式部署。
其他还有很多,大家可以留言。
未来事实上的PHP异步、协程标准。
其实就是基于上面介绍的框架实现的专门用于HTTP开发的框架。刚才介绍的框架基本是能够实现TCP、UDP网络编程的,本小节主要介绍开发HTTP的部分,大部分也是基于上面这些框架实现的。
基于Workerman的高性能HTTP框架,简单易用,基本的MVC体验。
基于swoole扩展实现的高性能HTTP框架,比如easyswoole,Hyperf等等。
基于ReactPHP实现的PHP进程管理,可以无缝与标准的请求、响应框架集成驱动。
GO语言编写的PHP应用服务框架。
此类框架很多,不多介绍了。
确实很少有人这么做,很少有人开发在命令行下的项目,如果有这种需求,一般是使用ThinkPHP、laravel等框架提供的自定义命令去实现了。但不代表PHP没有这方面的成熟的框架。
一个PHP的极简的无依赖的命令行类库.可以非常方便的结构化的程序逻辑和漂亮的输出.
PsySH是一个实时运行的交互的命令行项目。
一个事实上的PHP标准的命令行框架。
可能有些PHP没接触过这个概念,大体的意思是,不用自己部署运维服务器了,只要把代码上传到severless的服务上即可,按计算扣积分。基本都是各大服务器厂家提供的服务。其中laravel对其有很好的支持,其他也有一些框架能够很容易的实现。比如Bref,简单且可扩展的服务框架。
所以总的来说,PHP有各种的方式,对应不同的业务场景。
其他还有一些很有意思的项目,比如:
- KPHP,把PHP编译成C++代码。
- peachpie,把PHP便以为.NET平台程序
- PHP-JS,集成Node引擎的PHP扩展
- PHP-CPP,使用C++开发PHP扩展,代码很容易上手
这些项目在我的另一篇文章有介绍:
《PHP的几个有趣的打开方式:从基本到变态》https://phpreturn.com/index/a623dc0357dead.html
最近又出了几个PHP代码“编译”功能的项目,主要的目并不是性能,而是源码保护,ulthon_admin的有个分支正在做这件事,还没有正式发布,另外一个国人开发的项目,也没正式上线,总体思路也是这个,等以后详细为大家介绍介绍。
原文标题:PHP 的运行方式有哪些?
原文地址:https://phpreturn.com/index/a640bdfa37386b.html
原文平台:PHP武器库
版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。
2023年,学习PHP是否仍然有价值?
Hi!这里是W3Cschool编程狮的小狮妹!
在飞速发展的编程世界中,每年都会涌现出新的编程语言和技术,让人感到眼花缭乱。但对于曾经是Web开发的入门之选的PHP来说,2023年是否仍然是一个有价值的选择呢?这是一个值得深思熟虑的问题,因为PHP在过去的几十年里一直扮演着重要的角色,但同时也面临着新兴技术的竞争。
接下来我们将探讨PHP的现状,分析它在当今编程领域中的地位,以及为什么你仍然应该考虑学习它。无论你是一位初学者还是一名有经验的开发者,这都是一个值得关注的话题,因为决定学习哪门编程语言将直接影响你的职业生涯和技能发展。
PHP自诞生以来经历了长足的发展。随着PHP 8.x的最新更新,这门语言引入了许多高级特性,使其不仅更强大,而且更高效。例如:
- 命名参数:这个特性允许你在调用函数或方法时,使用参数的名称而不是位置来指定它们。这样可以提高代码的可读性和灵活性,避免错误和混淆。
- 属性:这个特性允许你在类或对象中定义元数据,用于描述它们的特征或行为。这样可以简化代码,增加可维护性和可扩展性。
- 即时编译器:这个特性允许PHP在运行时将代码编译成机器码,从而提高执行速度和性能。这对于处理大量数据或复杂逻辑的应用程序非常有用。
- 联合类型:这个特性允许你在函数或方法的参数或返回值中指定多种类型,而不是只能指定一种类型。这样可以增加代码的灵活性和健壮性,避免类型错误。
这些改进使PHP与现代编程实践保持一致,使其成为各种Web开发项目的强大选择。
PHP是一种专为Web开发而设计的语言。它拥有丰富的内置函数和扩展库,可以轻松地处理各种Web相关的任务,如数据库操作、文件上传、会话管理、邮件发送等。PHP还支持多种Web服务器和平台,如Apache、Nginx、Windows、Linux等。
除了基础的Web开发功能外,PHP还是许多流行的内容管理系统(CMS)的基础。WordPress、Joomla和Drupal等CMS都是基于PHP构建的。这些系统为全球数百万个网站提供动力,包括一些知名品牌,如梅赛德斯-奔驰、索尼音乐甚至白宫。如果你想要创建或维护这些基于PHP的平台,你就需要掌握PHP的技能。
PHP拥有强大而丰富的生态系统,包括Laravel、Symfony、CodeIgniter和Yii2等流行框架。框架是一种预先编写好的代码库,可以帮助开发者快速构建应用程序,而无需从零开始编写所有代码。框架可以提供各种功能和组件,如路由、数据库操作、验证、缓存、测试等。
这些工具极大地提高了开发速度,使编码变得更加简单和愉快。如果你决定学习PHP,你将能够使用这些工具快速构建健壮和可扩展的应用程序。
对于懂得PHP的开发人员的需求依然旺盛,尤其是在Web开发领域。从初创公司到跨国企业,都在寻找熟练的PHP程序员。PHP开发人员可以获得有竞争力的薪资,而且随着远程工作的兴起,你可以在全球范围内找到就业机会。
根据Indeed的数据,PHP开发人员的平均年薪为$79,000,而且有超过10,000个PHP相关的职位空缺。
PHP多年来一直因其低入门门槛而备受欢迎。相对于一些其他服务器端语言,PHP更容易上手,这使得它成为初学者的理想选择。PHP有以下几个特点使其易于学习:
- 语法简洁:PHP的语法相对简单,不需要太多的符号或关键字。它也支持多种编程范式,如面向对象、过程式和函数式编程。
- 文档丰富:PHP有一个官方的文档网站,提供了详细的参考资料和教程。你可以在这里找到关于PHP的基础知识、函数、类、扩展等方面的信息。
- 错误提示友好:PHP有一个内置的错误处理机制,可以在出现错误时显示相关的信息和建议。这可以帮助你快速定位和解决问题。
- 兼容性强:PHP可以运行在几乎所有主流的操作系统和Web服务器上,而且可以与多种数据库和其他技术集成。这使得你可以在不同的环境中使用PHP,而无需太多的配置或修改。
尽管PHP容易入门,但PHP足够强大,可以用于构建复杂的应用程序,为学习者提供逐渐挑战更高级项目的机会。
PHP在其20多年的历史中积累了庞大且活跃的社区。这意味着有大量的资源可供学习和故障排除。无论何时遇到问题,都可以在专门的PHP论坛或Stack Overflow线程等地方寻求帮助。
此外,这个社区不断为PHP的发展和其生态系统的演变做出贡献。你可以在GitHub上找到数千个由社区成员创建和维护的开源项目,涵盖了各种主题和领域。
由于PHP已经存在了很长时间,因此有大量的Web应用程序是用PHP编写的。这些应用程序仍然需要维护、更新和升级,以保持其功能和安全性。
这就意味着对PHP开发人员的需求不会消失,而是会持续存在。如果你掌握了PHP技能,你就可以为这些遗留代码提供服务,并从中获得收益。
综上,尽管有新的编程语言不断涌现,但PHP仍然表现出了弹性和适应性。凭借其不断的改进、丰富的生态系统和稳健的就业市场需求,PHP在2023年依然是初学者和有经验的程序员扩展技能组合的有价值的投资。无论你是寻找新的编程语言,还是想要提高自己的职业前景,学习PHP都会是一个明智的选择。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。