2013-07-12 43 views
1

我在ZendStudio中遇到了一个很奇怪的问题。使用phar扩展包括或需要phar档案中的文件phar://流包装将无法在ZendStudio中工作。需要使用phar流的文件在ZendStudio中不起作用

这是我所做的。

给出的下列文件结构:

phar/Test.php 
pharbuilder.php 
usephar.php 

具有以下内容:

药业/ test.php的:

class Test {} 

pharbuilder.php:

$phar = new Phar(__DIR__ . '/test.phar'); 
$phar->buildFromDirectory(__DIR__ . '/phar/'); 

usephar.ph电话号码:

var_dump(file_exists('phar://' . __DIR__ . '/test.phar/Test.php')); 
include('phar://' . __DIR__ . '/test.phar/Test.php'); 
$test = new Test(); 
var_dump($test); 

现在,如果你第一次运行在ZendStudio的pharbuilder.php(ZS 8:右键点击文件,作为运行PHP脚本)药业文件(test.phar)将成功创建(运行前它,你必须添加ini选项phar.readonly=0到相应的php.ini)。但是,在ZS中运行usephar.php将导致错误。

bool(true) 
Warning: include(): Failed opening 'phar:///somepath/test.phar/Test.php' for inclusion 

很明显,该文件可以找到,但它不能被包括在内。我也可以访问该文件中的Test.php的内容使用file_get_contents('phar://' . __DIR__ . '/test.phar/Test.php')

此外,我注意到,如果我修改此脚本的运行配置并禁用复选框“运行时显示调试信息” 。所以我认为它与ZendDebugger有关,但我不太确定。

当我从控制台运行相同的脚本时,一切正常。

我试着用ZendStudio 8和10和所有在ZS提供的PHP版本(5.4.11,5.3.21,5.3.3都在CGI和CLI中)。

由于我找不到其他人有同样的问题,我认为我做错了什么,并且有任何建议。也许一些秘密的php.ini指令或类似的东西。

+0

我将创建在这一个Zend的支持票。 – DevZer0

+0

我的同事使用他的zend联系人,他们可以重现问题。希望他们很快会解决它。不管怎么说,还是要谢谢你。 – Ska

+0

你能解决这个问题吗? – akanevsky

回答

0

此问题现在已在Zend Studio 10.6.2中修复。 请记住,当上面提到您需要修改php.ini文件(位于 - <studio_home>/plugins/com.zend.php.debug.debugger.win32.x86_\resources\php) 并添加 phar.readonly = 0