用于本机客户端的PHP(NaCl)
是否有将php移植到的项目? 我还没找到用于本机客户端的PHP(NaCl),php,lint,google-nativeclient,Php,Lint,Google Nativeclient,是否有将php移植到的项目? 我还没找到 我的目标是在不必往返服务器的情况下执行php lint检查。[edit]我知道您现在想要什么了。。。如果能发布一个指向谷歌项目页面的链接,将会很有帮助 您可能需要自己为NaCl编译它。我不确定最初的答案是否真的有用,但我将把它留给子孙后代 使用 您需要使用语法检查 完整参考资料 Usage: php [options] [-f] <file> [--] [args...] php [options] -r <code&g
我的目标是在不必往返服务器的情况下执行php lint检查。[edit]我知道您现在想要什么了。。。如果能发布一个指向谷歌项目页面的链接,将会很有帮助 您可能需要自己为NaCl编译它。我不确定最初的答案是否真的有用,但我将把它留给子孙后代
使用 您需要使用语法检查 完整参考资料
Usage: php [options] [-f] <file> [--] [args...]
php [options] -r <code> [--] [args...]
php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
php [options] -- [args...]
php [options] -a
-a Run interactively
-c <path>|<file> Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f <file> Parse and execute <file>.
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-r <code> Run PHP <code> without using script tags <?..?>
-B <begin_code> Run PHP <begin_code> before processing input lines
-R <code> Run PHP <code> for every input line
-F <file> Parse and execute <file> for every input line
-E <end_code> Run PHP <end_code> after processing all input lines
-H Hide any passed arguments from external tools.
-s Output HTML syntax highlighted source.
-v Version number
-w Output source with stripped comments and whitespace.
-z <file> Load Zend extension <file>.
args... Arguments passed to script. Use -- args when first argument
starts with - or script is read from stdin
--ini Show configuration file names
--rf <name> Show information about function <name>.
--rc <name> Show information about class <name>.
--re <name> Show information about extension <name>.
--rz <name> Show information about Zend extension <name>.
--ri <name> Show configuration for extension <name>.
用法:php[options][f][-][args…]
php[options]-r[-][args…]
php[options][-B]-R[-E][-][args…]
php[options][-B]-F[-E][-][args…]
php[选项]-[args…]
php[选项]-a
-以交互方式运行
-c |在此目录中查找php.ini文件
-n不使用php.ini文件
-d foo[=bar]使用值“bar”定义INI条目foo
-e生成调试器/探查器的扩展信息
-f解析并执行。
-这有什么帮助
-我需要PHP信息
-仅限语法检查(lint)
-m显示在模块中编译
-r在不使用脚本标记的情况下运行PHP
-B在处理输入行之前运行PHP
-R为每个输入行运行PHP
-F解析并执行每个输入行
-E在处理所有输入行后运行PHP
-H隐藏从外部工具传递的任何参数。
-s输出突出显示的HTML语法源代码。
-v版本号
-w输出源代码,带有删除的注释和空白。
-z加载Zend扩展。
args。。。传递给脚本的参数。第一个参数时使用--args
以开头-或从标准输入读取脚本
--显示配置文件名
--rf显示有关功能的信息。
--显示关于类的信息。
--重新显示有关扩展的信息。
--rz显示有关Zend扩展的信息。
--ri显示扩展的配置。
回答@crystal miller再次提出的问题:我不知道有任何PHP端口连接到NaCl,但是有很多其他语言的端口,因此如果您确实想将PHP(或任何其他语言)连接到NaCl,下面的信息应该为您指明正确的方向
NaCl团队保存了一个回归测试端口列表。这些都是合理的最新版本,有时包含一个应用于上游项目的小补丁(尽管团队试图上游这些补丁),并且有权为各种NaCl和PNaCl目标(便携式、x86-32、x86-64、ARM、静态链接、动态链接等)生成make
咒语
您需要从开始,看看您的项目是否在那里。如果你真的让PHP工作了,我建议你做出改变
下一个棘手的问题是您是否要运行该语言:
- 在Chrome浏览器中,打开web
- 作为一种铬或铬
- 在机器上,例如服务器上
编译的基本方法是相同的,但应用程序与外部世界的通信方式将完全不同:沙盒公开了与沙盒外部进程通信的通信机制
在编译端,您可以在目标NaCl本身(特定于体系结构:x86-32/x86-64/ARM/MIPS)和PNaCl(不区分体系结构)之间进行选择。两者都不依赖操作系统,可以作为扩展/应用程序或在服务器上执行,但只有PNaCl可以在开放web上执行。NaCl工具链基于GCC(在编写x86的4.4时,ARM为4.9),而PNaCl工具链基于llvm3.5(很快就会成为树的顶端)。PNaCl工具链也可用于针对NaCl,目前这有点复杂,但是。NACL工具链支持静态和动态链接(通过NeXLIB或GLYBC)以及零成本C++异常处理,而PNACL工具链目前只支持静态链接()和基于SJLJ的异常处理(稍后将出现零成本)。
这听起来很复杂,但总的来说,它只是一个有很多旋钮的编译器:在web上分发需要速度和可移植性
需要记住的一点是:NaCl确实支持一些有限的动态代码生成(例如,有一个使用JIT编译的应用程序),但PNaCl目前不支持。这意味着解释器更容易移植(即使V8也是这样工作的)。有些语言(如Halide、Rust或Julia)生成LLVM位码,可以将此位码传递给PNaCl,但在编写时,有时仍然很棘手,请按照邮件列表进行更新(有些人已经使用了这些代码)。但是,可以动态生成PNaCl的.pexe
文件,将它们存储在本地文件系统中并执行它们,通过动态链接,您应该能够使用.pso
执行相同的操作
当作为Chrome(开放式web或扩展或应用程序)的一部分执行时,有。有些API需要特权,有些API仅限于扩展/应用程序(因为它们不适合web模型),有些API要求用户选择加入
作为Chrome的一部分,您可能还希望使用它来模拟更多的POSIX行为,并允许您安装HTML5文件系统,然后只使用常规POSIX API
当作为服务器运行时,事情更复杂:您必须弄清楚如何与外部世界通信,而且NaCl没有默认的api。不过这是可能的:谷歌在内部使用NaCl,还有像Ripple Lab这样的项目可以做到这一点。在这些情况下,您可能希望依靠NaCl的sel\u ldr
或sel\u ldr\u seccomp
来执行NaCl.nexe
文件(即s
Usage: php [options] [-f] <file> [--] [args...]
php [options] -r <code> [--] [args...]
php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
php [options] -- [args...]
php [options] -a
-a Run interactively
-c <path>|<file> Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f <file> Parse and execute <file>.
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-r <code> Run PHP <code> without using script tags <?..?>
-B <begin_code> Run PHP <begin_code> before processing input lines
-R <code> Run PHP <code> for every input line
-F <file> Parse and execute <file> for every input line
-E <end_code> Run PHP <end_code> after processing all input lines
-H Hide any passed arguments from external tools.
-s Output HTML syntax highlighted source.
-v Version number
-w Output source with stripped comments and whitespace.
-z <file> Load Zend extension <file>.
args... Arguments passed to script. Use -- args when first argument
starts with - or script is read from stdin
--ini Show configuration file names
--rf <name> Show information about function <name>.
--rc <name> Show information about class <name>.
--re <name> Show information about extension <name>.
--rz <name> Show information about Zend extension <name>.
--ri <name> Show configuration for extension <name>.