2014-07-22 12 views
5

Ich weiß, wie PHP-Datei in phar-Datei zu konvertieren.Konvertieren Web-Anwendung (ZF2) zu PHAR

$phar = new PHAR('app.phar'); 
$phar->addFile('file1.php'); 
$phar->addFile('file2.php'); 

Ich dachte, es kann nur nützlich sein für die Umwandlung von POPO zu PHAR.

Meine Frage

Ist es möglich, ganz Zend Framework 2 Web-Anwendung PHAR-Datei zu konvertieren? wenn ja, wie?

(oder)

Wie Zend framework2 Web-Anwendung in ein Paket verpacken? (Außer .zpk (Zend Studio Paketdatei) Dateiformat)


Aktualisiert: Phar von gesamter Anwendung zu schaffen

create-phar.php

$basePath = /path/to/; 
$path = /path/to/application; 
$phar = new Phar ('project.phar');  
$phar->buildFromIterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)), $basePath); 
$phar->setStub("<?php 
    Phar::webPhar('project', 'public/index.php'); 
     include 'phar://project/public/index.php'; 
     __HALT_COMPILER(); 
    ?>"); 

Index .php

<?php 
include 'project.phar'; 
?> 

Frage: es zeigt leere Seite auf dem Browser

Wenn ich es laufe index.php leitet nicht unbedingt die Öffentlichkeit/index.php statt einreichen. Wie kann ich dieses Problem lösen?

Vielen Dank im Voraus

+0

Werfen Sie einen Blick [hier] (http://stackoverflow.com/questions/15750913/generating-a-phar-for-a-simple-application). Auch IMHO packen ganze App ist keine gute Idee. Fist, in Zeiten des Komponisten wird es schwieriger zu entwickeln, und zweitens - soweit ich weiß - "APC" unterstützt nicht "Phar", so dass Sie einen großen Performance-Engpass treffen werden. – ex3v

+0

Ich mag Ihre Frage, dies wird für Entwickler nützlich sein, die ihren Code verbergen möchten, um ihn an Unternehmen zu liefern. – peterpeterson

+1

@BrunoQuintanaFleitas [Nicht wirklich] (http://php.net//manual/pl/phar.extractto.php) – ex3v

Antwort

4

I bereitstellen phorkie als .phar Datei.

Es gibt einige Dinge zu beachten:

  1. alle Dateien Packen Sie in der .phar - php und statische Asset-Dateien (js, css, png, jpg), auch. I use phing das zu tun. Vergiss nicht die Abhängigkeiten.
  2. Sie benötigen eine Stummel Datei, die Phar::webPhar() die Pflege HTTP nimmt läuft die Entsendung headers
  3. Ihre eigenen .htaccess Rewrite-Regel-Interpreter schreiben, weil Phar::webPhar() nicht schön-Pfad auf seinem eigenen Lösung macht. I did that already.
  4. nehmen manuell Pflege für statische Dateien Caching-Header von aussendet
  5. Hoffnung, dass Sie (oder Ihre Benutzer) nicht in einen der Phar::webPhar Fehler laufen:
    1. Symlinked files
    2. No HEAD, PUT or DELETE support
    3. Redirection loop with FPM (bereits in git) fixiert
  6. Hoffnung, dass Ihre Benutzer web server handles .phar files (es wird nicht; neither Debiannor Fedora Schiff, die Konfiguration)
  7. Hoffnung, dass der Web-Server des Benutzers korrekt .phar Dateien mit PATH_INFO beigefügten hand konfiguriert ist (/path/to/file.phar/foo/bar.png), wie in http://p.cweiske.de/122

phorkie vom .phar läuft bekommen hat mir die Abende von zwei Wochen. Nun, da es im Grunde funktioniert, ist es immer noch keine Drop-Phar-and-Play-Lösung, da die Standardkonfiguration von Webservern einfach nicht mit .phar spielt.

+0

Hallo cweiske, danke für Ihre Antwort. und hoffe, dass es mein Problem lösen kann. –

+0

Ich werde deine Antwort akzeptieren, sobald ich meine eigene zf2 phar file.btw ++ für deine Antwort erstellen werde –

+0

Hi @cweiske, kannst du mir helfen Stub für meine create-phar.php Datei zu setzen? und ich habe meine Frage aktualisiert –