2013-07-12 60 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

相關問題