2014-07-22 19 views
5

So come convertire il file php in file phar.Convertire l'applicazione Web (ZF2) in PHAR

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

Ho pensato che possa essere utile solo per la conversione di POPO in PHAR.

La mia domanda

E 'possibile convertire l'intero Zend Framework 2 applicazione Web per PHAR il file? se sì, allora come?

(o)

Come confezionare Zend Framework2 applicazione web in un pacchetto? (Ad eccezione .zpk (Zend file del pacchetto di studio) formato di file)


Aggiornamento: la creazione Phar da tutta l'applicazione

creare-phar.php indice

$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(); 
    ?>"); 

.php

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

Domanda:

Quando ho eseguito index.php non fanno reindirizzare ad effettiva pubblico/index.php file invece mostra pagina vuota sul browser. Come posso risolvere questo problema?

Grazie in anticipo

+0

Date un'occhiata [qui] (http://stackoverflow.com/questions/15750913/generating-a-phar-for-a-semplice-application). Anche IMHO che impacchetta l'intera app non è una buona idea. Pugno, in tempi di compositore sarà più difficile da sviluppare, e in secondo luogo - per quanto ne so 'APC' non supporta 'phar', quindi colpirà un collo di bottiglia ad alte prestazioni. – ex3v

+0

Mi piace la tua domanda, questo sarà utile per gli sviluppatori che vogliono nascondere il proprio codice per consegnarlo alle aziende. – peterpeterson

+1

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

risposta

4

schiero phorkie come file .phar.

ci sono alcune cose da considerare:

  1. impacchettare tutti i file nella .phar - file di risorse statiche (js, css, png, jpg) php e, anche. I use phing per farlo. Non dimenticare le dipendenze.
  2. è necessario un file stub che corre Phar::webPhar() che si occupa di inviare le intestazioni HTTP
  3. Scrivi la tua .htaccess riscrittura regola interprete, perché Phar::webPhar() non fa bella-path risolvere da solo. I did that already.
  4. Portare manualmente cura di inviare intestazioni di cache per file statici
  5. speranza che voi (o gli utenti) non incorrere in una delle Phar::webPhar bug:
    1. Symlinked files
    2. No HEAD, PUT or DELETE support
    3. Redirection loop with FPM (già risolto in git)
  6. Spero che il tuo utente sia web server handles .phar files (non lo farà; neither Debiannor Fedora nave che la configurazione)
  7. speranza che del server Web dell'utente è configurato correttamente per gestire .phar i file con PATH_INFO aggiunto (/path/to/file.phar/foo/bar.png), come in http://p.cweiske.de/122

Ottenere phorkie che va dalla .phar mi ha portato la sera di due settimane. Ora che funziona in pratica non è ancora una soluzione drop-phar-and-play, perché la configurazione di default dei server Web non funziona con .phar.

+0

Ciao cweiske, grazie per la tua risposta. e spero che possa risolvere il mio problema. –

+0

Accetterò la tua risposta una volta che creerò il mio file pf zf2.btw ++ per la tua risposta –

+0

Ciao @cweiske, puoi aiutarmi a impostare lo stub per il mio file create-phar.php? e ho aggiornato la mia domanda per favore guarda in quello –