0
我试图将一些PHP应用程序编译成字节码。代码使用魔术常量__FILE__。如何使用bcompiler和__FILE__魔术常量
infile.php:
<?php
echo dirname(__FILE__);
squish.php:
<?php
$h = fopen('/tmp/pants/outfile.php', 'w');
bcompiler_write_header($h);
bcompiler_write_file($h, '/tmp/trousers/infile.php');
bcompiler_write_footer($h);
fclose($h);
test.php的:
<?php
require('/tmp/pants/outfile.php');
运行test.php的的输出是/tmp/trousers
而非/tmp/pants
。我猜这是因为在将字节码写入输出文件之前,字节码编译阶段将魔术常量转换为它们各自的值,但是这严重限制了我将魔术常量用于任何有用的魔术常量的能力,如果它们始终与位置相关的输入文件。
是否有任何其他方式来检索当前源文件的名称?有没有其他技术可以减轻对__FILE__的需求,但仍然允许我引用相对于给定源文件的路径?
感谢抬起头。由于我无法在Ubuntu 10.04或10.10上使用最新的PECL测试版或最新的SVN在PHP中合理简单的一组PHP类,因此我已经完全放弃了bcompiler。它不断给我的方法找不到扩展其他类的类的错误。 – Shabbyrobe 2011-04-06 01:28:40