Empacotamento Phar
Phar é um tipo de arquivo de empacotamento semelhante ao JAR no PHP. Você pode usar o Phar para empacotar o seu projeto webman em um único arquivo Phar para facilitar a implantação.
Um grande agradecimento para fuzqing pelo PR.
Nota
Você precisa desativar as opções de configuração de Phar nophp.ini, ou seja, definirphar.readonly = 0.
Instale a ferramenta de linha de comando
composer require webman/console
Empacotamento
No diretório raiz do projeto webman, execute o comando php webman build:phar. Isso criará um arquivo webman.phar no diretório build.
As configurações relacionadas ao empacotamento estão em
config/plugin/webman/console/app.php.
Comandos de início e parada relacionados
Iniciar
php webman.phar start ou php webman.phar start -d
Parar
php webman.phar stop
Verificar o status
php webman.phar status
Verificar o status da conexão
php webman.phar connections
Reiniciar
php webman.phar restart ou php webman.phar restart -d
Observações
-
Projetos empacotados não suportam reload; é necessário reiniciar para atualizar o código.
-
Para evitar tamanho excessivo do pacote e uso de memória, você pode configurar as opções
exclude_patterneexclude_filesemconfig/plugin/webman/console/app.phppara excluir arquivos desnecessários. -
Após executar o webman.phar, um diretório
runtimeserá criado no mesmo diretório que o webman.phar, usado para armazenar arquivos temporários, como logs. -
Se o seu projeto usa um arquivo .env, você precisará colocar o arquivo .env no mesmo diretório que o webman.phar.
-
Nunca armazene arquivos enviados por usuários dentro do pacote Phar, pois operar com esses arquivos via o protocolo
phar://é muito perigoso (vulnerabilidade de desserialização Phar). Os arquivos enviados por usuários devem ser armazenados separadamente em disco, fora do pacote Phar. Veja abaixo. -
Se o seu negócio precisa fazer upload de arquivos para o diretório "public", você precisará separar o diretório "public" e colocá-lo no mesmo diretório que o webman.phar. Nesse caso, você precisará configurar
config/app.php.'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',O negócio pode usar a função auxiliar
public_path($caminho_relativo)para encontrar a localização real do diretório "public". -
O webman.phar não suporta a execução de processos personalizados no Windows.