- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
HipHop在C可执行文件中编译PHP。 PHP错误会发生什么?
调试起来更难吗?
编辑:我浏览了文档,但没有找到任何东西
最佳答案
我做了几个快速测试(不幸的是,我没有时间像我想的那样玩嘻哈音乐;-();这是我得到的结果:
首先,这是test-2.php
的内容,其中包含一个解析错误:
<?php
echo "what with a parse error ?
$ php test-2.php
PHP Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in /home/squale/temp/hiphop-php/tests/test-2.php on line 5
Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in /home/squale/temp/hiphop-php/tests/test-2.php on line 5
$ /home/squale/temp/hiphop-php/hiphop-php/src/hphp/hphp test-2.php --keep-tempdir=1 --log=3
running hphp...
creating temporary directory /tmp/hphp_JdsWcU ...
parsing inputs...
parsing ./test-2.php...
parsing inputs took 0'00" (0 ms) wall time
running hphp took 0'00" (154 ms) wall time
Exception: Unable to parse file: ./test-2.php
(Line: 5, Char: 0): syntax error, unexpected $end
test-1.php
的内容:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
if ($_GET['test'] == '1') {
$data = (object)array(10);
echo $data[0];
} else if ($_GET['test'] == '2') {
echo 10/0;
} else if ($_GET['test'] == '3') {
file_put_contents('/bin/non-allowed', 'hello !');
}
echo "plop\n";
http://localhost/temp/test-1.php?test=1
我得到:
Fatal error: Cannot use object of type stdClass as array in /home/squale/developpement/tests/temp/test-1.php on line 8
http://localhost/temp/test-1.php?test=2
我得到:
Warning: Division by zero in /home/squale/developpement/tests/temp/test-1.php on line 10
plop
http://localhost/temp/test-1.php?test=3
,我得到:
Warning: file_put_contents(/bin/non-allowed) [function.file-put-contents]: failed to open stream: Permission denied in /home/squale/developpement/tests/temp/test-1.php on line 12
plop
test-1.php
文件并在Web服务器模式下运行它,我在编译阶段就得到了它,这意味着可以:
$ /home/squale/temp/hiphop-php/hiphop-php/src/hphp/hphp test-1.php --keep-tempdir=1 --log=3
running hphp...
creating temporary directory /tmp/hphp_xXZ8US ...
parsing inputs...
parsing ./test-1.php...
parsing inputs took 0'00" (1 ms) wall time
pre-optimizing...
pre-optimizing took 0'00" (0 ms) wall time
inferring types...
inferring types took 0'00" (0 ms) wall time
post-optimizing...
post-optimizing took 0'00" (0 ms) wall time
creating CPP files...
creating CPP files took 0'00" (32 ms) wall time
compiling and linking CPP files...
compiling and linking CPP files took 0'39" (39807 ms) wall time
running executable /tmp/hphp_xXZ8US/program --file test-1.php...
plop
all files saved in /tmp/hphp_xXZ8US ...
running hphp took 0'40" (40054 ms) wall time
$ /tmp/hphp_xXZ8US/program -m server -p 8080
Could not mlockall
loading static content...
loading static content took 0'00" (0 ms) wall time
page server started
admin server started
all servers started
http://localhost:8080/test-1.php?test=1
我得到:
Unhandled error: Invalid operand type was used: not ArrayAccess objects.
http://localhost:8080/test-1.php?test=2
,我得到:plop
Division by zero
http://localhost:8080/test-1.php?test=3
,我得到:
plop
config.txt
的内容:
Log {
Level = Verbose
NoSilencer = true
AlwaysLogUnhandledExceptions = true
RuntimeErrorReportingLevel = 6143
Header = false
InjectedStackTrace = true
NativeStackTrace = true
MaxMessagesPerRequest = -1
}
ErrorHandling {
CallUserHandlerOnFatals = true
NoInfiniteLoopDetection = false
NoInfiniteRecursionDetection = false
MaxStackDepth = 1000
ThrowBadTypeExceptions = true
ThrowNotices = true
NoticeFrequency = 1 # 1 out of these many notices to log
WarningFrequency = 1 # 1 out of these many warnings to log
AssertActive = false
AssertWarning = false
}
--config
开关指向该文件:
$ /tmp/hphp_xXZ8US/program -m server -p 8080 --config=config.txt
Could not mlockall
loading static content...
loading static content took 0'00" (0 ms) wall time
page server started
admin server started
all servers started
http://localhost:8080/test-1.php?test=1
我得到:
http://localhost:8080/test-1.php?test=2
,我得到:
http://localhost:8080/test-1.php?test=3
,我得到:
plop
f_file_put_contents/316: Permission denied
--config
开关似乎是一个有趣的主意;-)
关于php - 使用HipHop for PHP,PHP错误会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2416595/
我正在尝试在我的电脑上安装 hiphop,但我遇到了 cmake 问题我收到此错误: CMake Error at CMake/HPHPFindLibs.cmake:65 (message): Cus
我认为 HipHop for PHP 是一个有趣的工具。它本质上是将 PHP 代码转换为 C++ 代码。以这种方式进行交叉编译似乎是个好主意,但我想知道,它们如何克服两种类型系统之间的根本差异?我的一
切换到 HipHop 而不是 XCache 是否有意义? HipHop 准备好迎接黄金时段了吗?还是我们应该等几个月再实现它? 编辑:我们有兴趣在运行 vBulletin 的服务器上测试配置。 最佳答
在哪里可以下载 HipHop 代码?我真的很想测试一下。 如果你去这里就足够有趣了: http://github.com/facebook/hiphop-php/wikis 它不能存在或私有(priv
有谁知道是否可以在 HipHop hhvm(最新版本)中包含一个 auto_prepend 文件? 我在选项或文档中没有看到有关此功能的任何内容。 最佳答案 不,目前没有办法做到这一点。不过,我很乐意
这里有谁能给我一份使用 HipHop 编译 PHP 的好教程吗?我看到this link .但我无法理解 linux 命令。我在 windows 中开发了应用程序。我无法在 linux 中运行这些命令
今天 PHP 世界的新闻是 Facebook's HipHop ,其中: HipHop for PHP isn't technically a compiler itself. Rather it i
我想知道这里有没有人用过HipHop ?如果是这样,您如何看待这项技术?是真实世界吗?你遇到了什么问题?我应该使用 HipHop 编译我的生产应用程序吗? 最佳答案 是的,我的团队在发布之前就在 Fa
如果我使用 CodeIgniter 等 PHP Web 框架编写一个 hello world 应用程序,然后使用 HipHop 编译并运行它。它会比我在 django 或 rails 中编写相同的 h
大多数开发者都对 Facebook 的 Hiphop for php 有所了解,我想在我的脚本中使用它,但不知道从哪里开始。 我应该与我的服务器提供商联系吗?还是我需要在我的脚本中添加一些代码? 最佳
谷歌搜索后,我发现了很多 HipHop 文档,但在 2011 年至 2013 年之间发布了大量文档。 今年早些时候推出了一个新版本的 HipHop,它甚至支持 Drupal 并包括很多改进......
我刚刚读了一篇 article并了解了基于 JVM for Java 构建的 HHVM。我继续尝试在网上搜索,但只找到有关在 Ubuntu build 12 版本上安装它的文章。 我一直在使用 WAM
这个问题在这里已经有了答案: Run HipHop PHP in Windows (2 个答案) 关闭 4 年前。 有人尝试过吗? http://developers.facebook.com/bl
如何在另一台服务器(未安装 HipHop)上使用 HipHop 编译转换为 C++ 的项目? 我把源码复制过来了,看起来是这样的: ./ CMakeCache.txt cmake_install
我在 Backtrack 5 下构建 hiphop 时遇到问题。我已经安装了所有必需品,显然唯一失败的部分是自定义 libevent 包。 这是我为构建和安装 libevent 而运行的命令。 wge
我正在尝试在 Ubuntu 13.04 服务器上为 HHVM 又名 Hiphop PHP 设置新贵,因此它会在启动时启动并在意外终止时重新生成。 脚本在: /etc/init/hhvm.conf
我有一个使用 rabbit mq 代理的应用程序,我有使用 php 编写的消费者并使用此扩展 http://pecl.php.net/package/amqp .我想使用 hiphop 编译这些消费者
最近我使用 Apache Benchmark (ab) 对 HipHop for PHP 进行了基准测试。 我希望 HipHop for PHP 的结果比普通的 apache2 网络服务器运行得更快,
我需要在基于 Windows 的开发环境中运行 HipHop PHP。我正在运行 Windows 7,我知道位于 facebook's repository 的版本专为 Linux 构建,但我需要在
它是否干净到可以丢弃 PHP 并手动优化 C++ 代码? 最佳答案 简短回答:否。 因为我花了一些时间让 HipHop 发挥作用,所以我决定在这里分享我的结果,这样我就不会觉得完全是在浪费时间。 这是
我是一名优秀的程序员,十分优秀!