无国籍人士;使用PHP(和Symfony)的异步web服务器
TL;DR:我不确定这个话题在StackOverflow上是否有一席之地,但基本上,它只是一个争论的话题,并且考虑如何像我们使用NodeJS那样制作PHP应用程序(无状态请求流、异步调用等) 形势 我们知道NodeJS可以同时用作web服务器和web应用程序 但是对于PHP(文档中这么说) 但是,由于Symfony full stack基于处理无国籍人士;使用PHP(和Symfony)的异步web服务器,php,node.js,symfony,asynchronous,stateless,Php,Node.js,Symfony,Asynchronous,Stateless,TL;DR:我不确定这个话题在StackOverflow上是否有一席之地,但基本上,它只是一个争论的话题,并且考虑如何像我们使用NodeJS那样制作PHP应用程序(无状态请求流、异步调用等) 形势 我们知道NodeJS可以同时用作web服务器和web应用程序 但是对于PHP(文档中这么说) 但是,由于Symfony full stack基于处理请求对象的内核,这意味着我们应该能够向同一内核发送大量请求,前提是我们可以在侦听HTTP请求之前通过创建内核“引导”php web服务器(而不是应用程序)
请求
对象的内核
,这意味着我们应该能够向同一内核发送大量请求,前提是我们可以在侦听HTTP请求之前通过创建内核“引导”php web服务器(而不是应用程序)。我们的路由器只会创建一个请求对象并让内核处理它
但对于这一点,Symfony应用程序必须是无状态的,例如,我们需要条令在请求后有效地清除其工作单元,或者我们可能需要根据请求对某些组件进行分类(通过使用其唯一的PHP类引用id标识请求?或使用其他PHP进程?),显然,在PHP中,或者在我们使用内部web服务器的方式中,我们需要更多异步的东西
我有时会问自己,现在也会问社区的主要问题
为了澄清这一点,我对PHP有一些问题:
我的意思是,如果我们可以配置服务器的运行方式及其“路由器”文件,我们应该能够像任何PHP服务器一样使用它,是还是不是
通过使用路由器,我觉得很明显变量是不共享的,否则我们可以制作类似nodej的应用程序,但PHP似乎无法做到这一点
e、 g.我向同一个内核对象发送两个不同的请求,在这种情况下,这两个请求是否有可能在Symfony核心组件中产生冲突
$kernel->handleRaw($request)代码>将消耗CPU,其余部分(容器、参数、服务等)将已经在内存中,或者对于服务,“等待实例化”。然后,我认为性能提升
它可能会让那些仍然认为PHP是一种非常糟糕且使用速度慢的语言的人有点不知所措:D
对于读者和响应者;)
如果一个核心PHP贡献者读到了我的文章,有没有什么方法可以让PHP内部更加异步,即使是基于函数或类的特定的新内部API
我不是所有这些概念的专家,我希望真正优秀的专家能够阅读并回答我
如果所有这些都能以任何方式实现的话,这将是PHP世界的一大进步。您的问题可以总结如下:
“PHP会更像节点吗?”
答案当然是肯定的。但这就引出了另一个问题:
“PHP应该更像节点吗?”
现在答案并不那么明显
当然,从理论上讲,PHP可以变得更像Node——甚至在某种程度上使其完全相同。只需使用Node的下一个版本,并将其命名为PHP6.0或其他版本
我认为这对Node和PHP都是有害的。运行时环境的多样性是有原因的。其中一个变体是在给定环境中使用的并发模型。使其中一个与另一个相似将意味着程序员的选择更少。选择越少,表达自由就越少
PHP和Node是在不同的时间出于不同的原因创建的
PHP开发于1995年,名称代表个人主页。用例是向HTML添加一些服务器端动态特性。那时我们已经有了SSI和CGI,但人们希望能够将数据库查询的结果同步地注入HTML,否则就没有多大意义了
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
server {
location / {
proxy_pass http://backend;
}
}