phar packaging

phar è un tipo di file di pacchetto in PHP simile a JAR. Puoi utilizzare phar per impacchettare il tuo progetto webman in un singolo file phar, facilitando la distribuzione.

Un ringraziamento speciale a fuzqing per la sua PR.

Attenzione
Devi disattivare l'opzione di configurazione phar in php.ini, impostando phar.readonly = 0

Installazione dello strumento da riga di comando

composer require webman/console

Imballaggio

Esegui il comando php webman build:phar nella directory radice del progetto webman.
Verrà generato un file webman.phar nella directory bulid.

Le configurazioni relative all'imballaggio si trovano in config/plugin/webman/console/app.php

Comandi relativi all'avvio e all'arresto

Avviare
php webman.phar start oppure php webman.phar start -d

Arrestare
php webman.phar stop

Controllare lo stato
php webman.phar status

Controllare lo stato delle connessioni
php webman.phar connections

Riavviare
php webman.phar restart oppure php webman.phar restart -d

Note

  • I progetti impacchettati non supportano il reload, aggiornare il codice richiede un riavvio.

  • Per evitare che il file di pacchetto occupi troppo spazio e memoria, puoi impostare le opzioni exclude_pattern e exclude_files in config/plugin/webman/console/app.php per escludere i file non necessari.

  • Dopo aver eseguito webman.phar, verrà creata una directory runtime nella directory contenente webman.phar, utilizzata per memorizzare log e altri file temporanei.

  • Se il tuo progetto utilizza un file .env, assicurati di collocare il file .env nella directory contenente webman.phar.

  • Non memorizzare mai i file caricati dagli utenti nel pacchetto phar, poiché operare sui file caricati dagli utenti con il protocollo phar:// è molto pericoloso (vulnerabilità di deserializzazione di phar). I file caricati dagli utenti devono essere archiviati separatamente su disco al di fuori del pacchetto phar, vedi sotto.

  • Se la tua attività richiede di caricare file nella directory public, devi isolare la directory public e collocarla nella directory contenente webman.phar. In questo caso, è necessario configurare config/app.php.

    'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',

    Le attività possono utilizzare la funzione helper public_path($posizione relativa del file) per trovare la posizione effettiva della directory public.

  • Nota che webman.phar non supporta l'avvio di processi personalizzati su Windows.