2010-08-19 17 views
13

PHP 5.3 ha una nuova funzionalità denominata PHAR simile a JAR in JAVA. È fondamentalmente un archivio di file PHP. Quali sono i suoi vantaggi? Non riesco a capire come possano essere utili nello scenario web.Vantaggi di archivi PHAR in PHP

Qualsiasi altro uso diverso da "facilità di implementazione" - distribuire un'intera applicazione, semplicemente copiando un file

+0

http://www.ibm.com/developerworks/opensource/library/os-php-5.3new4/index.html?ca=dgr-lnxw16PHP5.3-Phar&S_TACT=105AGX59&S_CMP=grsitelnxw16 –

risposta

18

Ci sono enormi vantaggi per i progetti open source (in nessun ordine particolare).

  1. Implementazione più semplice significa adozione più semplice. Immagina: tu installi un sistema CMS, forum o blog sul tuo sito web trascinandolo nel tuo client FTP. Ecco fatto.

  2. Implementazione più semplice significa maggiore sicurezza. L'aggiornamento all'ultima versione di un pacchetto software sarà molto meno complicato se si ha a che fare con un solo file.

  3. Implementazione più rapida. Se il tuo host web non ti dà accesso alla shell, non è necessario decomprimerlo prima del caricamento, il che elimina il sovraccarico del trasferimento per file.

  4. Compartimentazione innata. I file che fanno parte del pacchetto sono chiaramente distinti da aggiunte o personalizzazioni. Sai che puoi facilmente sostituire l'archivio ma devi fare il backup dei tuoi modelli di configurazione e personalizzati (e non sono tutti mescolati insieme).

  5. Librerie più semplici. Non è necessario capire come utilizzare il programma di installazione PEAR o scoprire se questa o quella libreria ha una struttura di directory nidificata o se è necessario includere X, Y o Z (in questo ordine?). Basta caricare, includere l'archivio, avviare la codifica.

  6. Più facile da mantenere. Non sei sicuro se l'aggiornamento di una libreria interromperà la tua applicazione? Basta sostituirlo. Rotto? Ripristina un file. Non hai nemmeno bisogno di toccare la tua applicazione.

  7. Quello che vedi è ciò che ottieni. È probabile che qualcuno non abbia intenzione di risolvere il problema con un archivio, quindi se ne vedi uno installato su un sistema che gestisci, puoi essere abbastanza fiducioso che non ha gettato in modo casuale degli hacker casuali. un hash può dirti velocemente quale versione è o se è stata cambiata.

Non fare la cacca per rendere più facile la distribuzione delle cose.Non farà alcuna differenza per i SaaS nostrani, ma per chiunque spedisca o installi pacchetti software PHP è un punto di svolta.

+4

Quindi è 7 punti in cui si tratta di un singolo file fantastico, ma non hai menzionato come influisce su qualcosa tranne la distribuzione. A me sembra che non sia la cosa migliore per le prestazioni. Qualche idea su questo? – naugtur

+1

@naugtur perché la distribuzione è un grosso problema. Fare provare qualcuno il tuo software web (open-source o meno) è il passo più difficile per l'adozione. Se gli dici "butta questo semplice file nel tuo server!" questo è un bel punto vendita per quel momento critico. –

2

Il vantaggio è la facilità principalmente di distribuzione. Si distribuisce un'intera applicazione semplicemente copiando un file.

Le librerie possono anche essere utilizzate senza essere espanse.

1

Qualsiasi strumento che funziona su un singolo file "improvvisamente" funziona con tutti i file di un'applicazione contemporaneamente.
E.g. trasporto: puoi caricare l'intera applicazione attraverso un singolo elemento di input/file senza passaggi aggiuntivi.
E.g. firma di un'applicazione: checksum/firma il file - > checksum/firma per l'intera applicazione.
...

+1

Quale si potrebbe anche fare con un normale tarball compresso con gzip ... Quindi l'unico vantaggio è che non devi espanderlo sulla distribuzione ... che è IMO non molto utile, esp. poiché la maggior parte delle volte devi anche scrivere i file di configurazione da qualche parte. – Artefacto

5

In teoria dovrebbe anche migliorare la velocità di caricamento. Se si dispone di un sacco di file che devono essere inclusi, la sua sostituzione con la sola inclusione consente di risparmiare tempo nelle operazioni di apertura dei file.

+0

Non penserei che questo faccia la differenza su Linux, e dubito che la gente usi Windows per un serio lavoro lato server (al di fuori di .NET), ma sarei felice se fosse vero. –

+0

Non sono sicuro di fare un lavoro serio, ma utilizzo PHP e Windows in produzione (non sono pazzo, era un requisito del cliente). – Maxence

4

Nella mia esperienza, i file di origine PHP compressi liberamente in un ambiente di produzione invitano armeggiare con codice in tempo reale quando è necessaria una correzione. La distribuzione in un file .phar scoraggia questo comportamento e aiuta a rafforzare le pratiche migliori, ad esempio la creazione e il test in un ambiente locale, quindi la distribuzione in produzione.

Problemi correlati