2013-07-12 1 views
1

Je suis aux prises avec un problème assez étrange dans ZendStudio. Inclure ou exiger des fichiers dans une archive phar en utilisant les extensions phar phar: // stream wrapper ne fonctionnera pas depuis ZendStudio.nécessite un fichier utilisant phar stream ne fonctionne pas dans ZendStudio

Voici ce que j'ai fait.

Compte tenu de la structure du fichier suivant:

phar/Test.php 
pharbuilder.php 
usephar.php 

Avec le contenu suivant:

phar/Test.php:

class Test {} 

pharbuilder.php:

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

usephar.ph p:

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

Maintenant, si vous exécutez d'abord la pharbuilder.php dans ZendStudio (8 ZS: faites un clic droit sur le fichier, exécutez en tant que script PHP) le fichier phar (de test.phar) sera créé avec succès (avant d'exécuter il faut ajouter l'option ini phar.readonly=0 au php.ini correspondant). Cependant, l'exécution de usephar.php à l'intérieur de ZS entraînera une erreur.

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

Donc évidemment, le fichier peut être trouvé, mais il ne peut pas être inclus. Je peux également accéder au contenu de Test.php dans le fichier en utilisant file_get_contents('phar://' . __DIR__ . '/test.phar/Test.php')

Aussi, j'ai remarqué que cela n'arrivera pas, si je modifie la configuration d'exécution pour ce script et désactiver la case à cocher "Afficher les informations de débogage lors de l'exécution" . Donc, je suppose que cela a quelque chose à voir avec le ZendDebugger, mais je ne suis pas tout à fait sûr.

Lorsque j'exécute les mêmes scripts à partir d'une console, tout fonctionne correctement.

J'ai essayé ceci avec ZendStudio 8 et 10 et avec toutes les versions de php fournies par ZS (5.4.11, 5.3.21, 5.3.3, toutes en CGI et CLI).

Puisque je ne pouvais pas trouver quelqu'un d'autre avec le même problème, je suppose que je fais quelque chose de mal et suis ouvert à toutes les suggestions. Peut-être une directive php.ini secrète ou quelque chose comme ça.

+0

je créerais un ticket de support avec zend sur celui-ci. – DevZer0

+0

Mon collègue a utilisé son contact zend et ils ont pu reproduire le problème. J'espère qu'ils vont le réparer bientôt. Merci quand même. – Ska

+0

Avez-vous pu résoudre ce problème dans votre cas? – akanevsky

Répondre

0

Ce problème est maintenant résolu dans Zend Studio 10.6.2. S'il vous plaît l'esprit que mentionné ci-dessus, vous devez modifier le fichier php.ini (situé dans - <studio_home>/plugins/com.zend.php.debug.debugger.win32.x86_\resources\php) et ajoutez phar.readonly = 0

Questions connexes