7

PHP 已嵌入 V8 JavaScript 引擎,http://www.php.net/manual/en/book.v8js.php。我想知道什么是可能的用例,尤其是。考虑到 PHP 是同步的,而 JavaScript 是异步的。

4

6 回答 6

7

此扩展的一个强大功能是客户端和服务器端都可以使用相同的代码,在服务器端和 js 客户端重用 PHP 中相同代码的实现。

一个可能的用例是使用相同的 JS 代码提供服务器端和客户端验证。客户端,代码将在浏览器中运行,服务器端使用 V8JS 执行。

其他潜在用途可能是模板或客户端和服务器端都需要的任何其他业务逻辑。

不过,您似乎仍处于未知领域。我还没有看到任何库使用 V8JS 来做这样的事情。

于 2014-03-05T17:31:10.200 回答
5

我在 PHP 中使用 JS 集成的方法之一是为最终用户提供一种简单的方式,以便在基于 PHP 的应用程序中安全地执行用户提供的代码(也称为脚本)。通过隐式隔离,可以限制可用于保护用户隐私和系统安全的输入和功能,同时允许在服务器上下文中进行各种用户定义的脚本操作。

我必须承认,有时在数据库记录中看到可执行的 javascript 代码有点令人不安!不过,你确实克服了。:)

于 2014-07-27T21:55:08.913 回答
2

一种用例可能是 javascript 模板或框架的服务器端渲染,简称 SSR。

可以使用 Vue.js 之类的 JavaScript 框架编写模板,或者使用 v8js 进行响应和渲染。

一旦 php 呈现模板并将其发送到浏览器,javascript 框架就可以获取它并使其具有交互性。

这里的两个好处是更快地加载 Web 应用程序和没有烦人的 javascript 页面闪烁。

于 2016-07-22T02:06:44.243 回答
1

对于构建从 HTML 模拟 Javascript 运行时提取有用数据的爬虫特别有用,因为某些 HTML 数据可能被 Javascript 代码隐藏/损坏。因此,除非您想自己用 PHP 编写 Javascript 解析器 - 唯一的选择是使用已经为此目的构建的 V8 引擎。

于 2017-09-08T12:04:16.240 回答
0

PHP 和 Javascript 是语言,说一种是同步的而一种不是是没有意义的。非正式地说,他们的意思是大多数使用 I/O 的语言的库都使用异步/同步 IO。

在核心语言和 V8 中,没有什么是异步的。

为什么要使用它?V8 上的 Javascript 比规范的 PHP 实现快几个数量级(请注意,还有其他 PHP 实现,例如 Facebook 的 HHVM),同时仍然是强大的脚本语言。通常,您将被迫为 PHP 编写 C 扩展以获得原始性能。

于 2013-08-14T09:53:43.503 回答
-1

很抱歉碰到/添加了一个古老的问题,但在 Web 2.0 / 3.0 时代一个相当明显的用例将是“当 file_get_contents() 无法解决时”。

尽管它可能不是最好的选择,但 PHP 也不是机器人、蜘蛛、爬虫等的最差选择。而且越来越多的网页是不完整的,除非它们上的 JavaScript 被执行/渲染。

于 2015-05-19T19:45:35.983 回答