2011-11-20 20 views
5

Dopo alcuni test/script/giocando con gli archivi PHAR di PHP 5.3, ho scoperto alcuni problemi.Problemi inaspettati con PHP PHAR

glob

PHAR non funziona con glob. Né come wrapper (http://www.php.net/manual/en/phar.using.stream.php#104320) né come chiamata di funzione.

Nel mio progetto di test ho dovuto eseguire un'iterazione sui file nel PHAR e filtrare il risultato con un'espressione regolare equivalente a glob.

imagettfbbox

Non ho idea perché, ma anche imagettfbbox non capisce il flusso involucro PHAR.

La soluzione più semplice era estrarre il file tramite copy(). (PHAR :: extractTo restituire con un'eccezione senza uno stacktrace o un numero di riga.)

Ci sono altre sorprese, che dovrei aspettarmi? Ci sono altri problemi noti? E sono documentati ovunque?

+0

Si prega di aggiungere i risultati al database dei bug di PHP all'indirizzo http://bugs.php.net – Mchl

risposta

2

glob: non credo che glob supporta corsi d'acqua, quindi questo non sarà specifico per phar:// ma qualsiasi flusso involucro.

imagettfbbox: Penso che questo sia lo stesso, nessun supporto per i wrapper di flusso, ma solo file nudi.

Ci sono altre funzioni, si incontrano anche le stesse. Ad esempio la classe ZIP non può gestire anche i flussi.

E non tutti gli impilatori di wrapping del flusso di supporto dell'involucro di flusso, ad es. un involucro funzionante su un altro.

Sentitevi liberi di aprire richieste di funzionalità nel php bugtracker e/o supportate lo sviluppo di PHP per introdurre un migliore supporto di streaming per i componenti per cui ne avete bisogno.

stretta relazione:In memory download and extract zip archive

+0

Esiste un elenco di metodi/classi che hanno problemi con i flussi? – mheinzerling

+0

Nessuno ne sono a conoscenza, altrimenti l'avrei aggiunto alla risposta. Se ne trovi uno, sentiti libero di aggiungere. – hakre

2

Il microframework selce è distribuito come un file phar. Abbiamo documentato la maggior parte dei problemi che abbiamo riscontrato in the pitfalls section of the documentation.

Nota: questo è principalmente dal punto di vista dell'utente.

+0

#pitfalls è andato. –

+1

Cheers, aggiornato il link. – igorw

+0

Niente più distribuzione phar di silex? – demonkoryu