中国著名的网站建设公司,东营市建设监理协会网站,王者荣耀网站开发目的,中国建设银行网站首页旧版PHP本质上的运行方式可以分为两种#xff1a;
基于命令行的基于PHP-FPM的
但实际上#xff0c;PHP能做的事很多#xff0c;很多场景下#xff0c;不同的运行方式能让开发更方便#xff0c;减轻各种工作。
测试开发
PHP内置了一个HTTP 的server。这意味着#xff0c;很…PHP本质上的运行方式可以分为两种
基于命令行的基于PHP-FPM的
但实际上PHP能做的事很多很多场景下不同的运行方式能让开发更方便减轻各种工作。
测试开发
PHP内置了一个HTTP 的server。这意味着很多时候我们不需要nginx、apache、php-fpm、配置站点等等繁琐的操作直接就可以运行php的代码。
比如这样简单的一行命令
php -S localhost:8000此时当前目录下的各类html、静态文件、php代码就都能正常返回运行了。
可以定义一个路由文件router.php设置一些规则
?php
// router.php
if (preg_match(/\.(?:png|jpg|jpeg|gif)$/, $_SERVER[REQUEST_URI]))return false; // 直接返回请求的文件
else { echo pWelcome to PHP/p;
}上面的路由文件定义了当请求图片时返回图片否则返回一段html代码。
ThinkPHP自5.1的版本起内置封装了PHP的内置服务器。只要再TP项目下运行命令
php think run这样这个框架就运行起来了不需要配置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老狗也会难受。
基于TCP/UDP的网络编程
PHP有各种内置的网络编程扩展和函数但是用起来比较麻烦不直观。但是现在有很多成熟且流行的网络编程框架可以基于TCP和UDP协议进行各类业务的开发比如例如即时通讯类、物联网、游戏、服务治理、其它服务器或者中间件、微服务等。
我也多次介绍过这些项目了他们也都很热门这里不再过多介绍
Workerman
基于官方扩展使用纯PHP开发的网络编程和进程管理库内置进程守护。
Swoole
纯C开发的PHP扩展库高性能、协程。
ReactPHP
像Node一样的事件驱动框架。国外热门主流衍生了非常多的有趣的项目比如有人用它实现了一套Redis server。
Swow
使用C和PHP实现的一套框架专注于IO。
GatewayWorker
基于Workerman开发的长连接框架开发体验极佳自动抹平协议沟通实现TCP、websocket等各种协议的对接支持分布式部署。
其他还有很多大家可以留言。
Revolt
未来事实上的PHP异步、协程标准。
基于TCP和Linux事件机制的高性能HTTP框架
其实就是基于上面介绍的框架实现的专门用于HTTP开发的框架。刚才介绍的框架基本是能够实现TCP、UDP网络编程的本小节主要介绍开发HTTP的部分大部分也是基于上面这些框架实现的。
Webman
基于Workerman的高性能HTTP框架简单易用基本的MVC体验。
Swoole系
基于swoole扩展实现的高性能HTTP框架比如easyswooleHyperf等等。
PHP-PM
基于ReactPHP实现的PHP进程管理可以无缝与标准的请求、响应框架集成驱动。
RoadRunner
GO语言编写的PHP应用服务框架。
此类框架很多不多介绍了。
基于命令行的业务
确实很少有人这么做很少有人开发在命令行下的项目如果有这种需求一般是使用ThinkPHP、laravel等框架提供的自定义命令去实现了。但不代表PHP没有这方面的成熟的框架。
[minicli/minicli]极简的命令行框架
一个PHP的极简的无依赖的命令行类库.可以非常方便的结构化的程序逻辑和漂亮的输出. [psy/psysh]一个PHP的实时交互控制台
PsySH是一个实时运行的交互的命令行项目。
[league/climate]一个PHP功能健全的命令行功能操作库
一个事实上的PHP标准的命令行框架。
SeverLess服务
可能有些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.comPHP武器库官网原创和首发所有权利归phpreturnPHP武器库所有本站允许任何形式的转载/引用文章但必须同时注明出处。