Domanda

Qualcuno lo usa Ph per distribuire applicazioni PHP e, in tal caso, come utilizzarle?Al momento disponiamo di uno script di "configurazione" scritto a mano che eseguiamo ogni volta che distribuiamo una nuova istanza del nostro progetto.Effettuiamo semplicemente il check-out da SVN e lo eseguiamo.Imposta alcune variabili di configurazione di base, installa o ricarica il database e genera un v-host per l'istanza del sito.

Ho spesso pensato che forse dovremmo usarlo Ph.Non ho usato molto la formica, quindi non ho un'idea precisa di cosa Ph dovrebbe fare altro oltre a copiare i file da un posto all'altro proprio come fa il nostro script di installazione.Quali sono alcuni usi più avanzati di cui puoi fornire esempi per aiutarmi a capire perché vorremmo o non vorremmo integrare Ph nel nostro processo?

È stato utile?

Soluzione

Da Federico Cargnelutti post sul blog:

Le funzionalità includono trasformazioni di file (ad es.Sostituzione token, trasformazione XSLT, trasformazioni di modelli Smarty), operazioni di file system, supporto per la build interattiva, esecuzione SQL, operazioni CVS, strumenti per la creazione di pacchetti di pera e molto altro.

Ovviamente potresti scrivere script personalizzati per tutto quanto sopra.Tuttavia, l'utilizzo di uno strumento di creazione specializzato come Phing offre numerosi vantaggi.Utilizzerai un framework collaudato, quindi invece di doverti preoccupare di configurare l'"infrastruttura" puoi concentrarti sul codice che devi scrivere.Usare Phing renderà anche più semplice quando nuovi membri si uniranno al tuo team, saranno in grado di capire cosa sta succedendo se hanno già usato Phing (o Ant, su cui si basa Phing).

Altri suggerimenti

Sono passato da Ant a Phing "solo perché" è PHP.Lo uso per esportare da diversi repository di subversion, copiare materiale, creare diversi pacchetti di installazione, ecc. Tutto questo con un file xml riutilizzabile di 20 righe e un file di configurazione con elementi specifici del progetto.Non avrei potuto farlo così velocemente con uno script personalizzato.Ho anche intenzione di integrare la generazione della documentazione API e i test unitari.Lo adoro!

La risposta convincente per me è che phing capisce i percorsi di classe PHP.La formica no.Non voglio avere un file ant build.xml pieno di comandi exec.Mi capita di essere principalmente un programmatore Java e uso ancora phing.È lo strumento migliore per il lavoro.

Usiamo phing per la distribuzione SemanticScuttle:

  • generare un archivio zip per la distribuzione
  • creare PERA pacchetto
  • caricamento cerniera lampo a SourceForge
  • aggiorna il Canale PERA con il nuovo file del pacchetto
  • eseguire il rendering della documentazione reStructuredText in file html e caricarli.Attualmente con exec ma sto per scrivere a compito separato per questo.

Il caricamento del file zip e del canale viene effettuato tramite rsync, che sfortunatamente non è supportato da phing tramite un'attività speciale, ma utilizzando exec è sempre possibile e funziona bene.

Alla fine, risparmiamo molto tempo e siamo in grado di testare, impacchettare e distribuire la nostra app con un solo comando (il che ci dà un altro punto sulla Gioele Prova).Non vorrei vivere senza di essa.

Vedi il codice build.xml.

Non vedo alcun motivo convincente per scegliere phing.Voglio dire, i programmatori PHP dovrebbero tentare una riscrittura di Eclipse "solo perché" potrebbe in qualche modo essere più semplice scrivere plugin Eclipse in PHP?Non credo.

Ant ha una documentazione migliore, inclusi alcuni bei libri di O'reilly, ed è ben consolidato nell'universo Java, quindi eviti i problemi di (1) "non abbiamo ancora copiato la funzionalità X su phing" e (2) il rischio del progetto phing che sta per morire. Ecco un articolo sulla configurazione di PHPUnit per funzionare con ant e cruisecontrol:non così difficile.E ottieni l'integrazione di Eclipse gratuitamente.

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top