Attualmente sto sperimentando un meccanismo di estensione per il mio framework. Ogni modulo è costituito da almeno un file PHP (che definisce una singola classe) e un foglio di stile XSL, ma potenzialmente molti altri file potrebbero essere coinvolti, così ho pensato subito di usare Phars.Stub PHP Phar minimo
Tutto sta funzionando bene insieme ma ho notato se non ho usato createDefaultStub()
e invece ho costruito il Phar come nel seguente frammento, il risultato è un quarto della dimensione - ed è più piccolo della versione compressa.
$phar = new Phar('Example.phar', 0, 'Example.phar');
$phar->buildFromDirectory(__DIR__ . '/src');
$phar->setStub('<?php __HALT_COMPILER();');
$phar->setSignatureAlgorithm(Phar::SHA256);
$phar->compress(Phar::GZ);
dimensioni dei file Esempio:
8799 14 Dec 09:37 ExampleCog.phar (using createDefaultStub())
2143 14 Dec 10:08 ExampleCog.phar (using __HALT_COMPILER())
3373 14 Dec 10:08 ExampleCog.phar.gz (consistent with either method)
Il Phar sarà semplicemente essere utilizzato per mantenere i file specifici moduli in bundle insieme e saranno inclusi in un quadro - in esecuzione standalone non avrebbe alcun senso in questo contesto. Credo che la mia domanda sia: cosa mi sto perdendo, se mai, con l'uso del codice stub minimo? E perché la versione compressa ha sempre le stesse dimensioni?
+1: molto utile e ben scritto. –