empacotamento phar

phar é um arquivo de empacotamento semelhante ao JAR no PHP. Você pode usar o phar para empacotar seu projeto webman em um único arquivo phar, facilitando a implantação.

Agradecemos muito ao fuzqing pela PR.

Aviso
É necessário desativar a opção de configuração phar no php.ini, ou seja, definir phar.readonly = 0

Instalando a ferramenta de linha de comando

composer require webman/console

Empacotamento

Execute o comando php webman build:phar no diretório raiz do projeto webman. Isso gerará um arquivo webman.phar no diretório bulid.

As configurações relacionadas ao empacotamento estão em config/plugin/webman/console/app.php

Comandos relacionados à inicialização e parada

Iniciar
php webman.phar start ou php webman.phar start -d

Parar
php webman.phar stop

Verificar status
php webman.phar status

Verificar estado das conexões
php webman.phar connections

Reiniciar
php webman.phar restart ou php webman.phar restart -d

Observações

  • O projeto empacotado não suporta reload; para atualizar o código, é necessário reiniciar.

  • Para evitar que o tamanho do arquivo empacotado ocupe muita memória, você pode definir as opções exclude_pattern e exclude_files em config/plugin/webman/console/app.php para excluir arquivos desnecessários.

  • Ao executar o webman.phar, um diretório runtime será gerado no diretório onde o webman.phar está localizado, para armazenar logs e outros arquivos temporários.

  • Se o seu projeto usar um arquivo .env, coloque o arquivo .env no diretório onde o webman.phar está localizado.

  • Nunca armazene arquivos enviados pelo usuário dentro do pacote phar, pois operar arquivos enviados pelo usuário usando o protocolo phar:// é muito perigoso (vulnerabilidade de deserialização do phar). Os arquivos enviados pelo usuário devem ser armazenados separadamente em um disco fora do pacote phar, conforme descrito abaixo.

  • Se o seu negócio precisar enviar arquivos para o diretório public, você deve separar o diretório public e colocá-lo no diretório onde o webman.phar está localizado. Neste caso, é necessário 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 do arquivo) para encontrar a localização real do diretório public.

  • Observe que o webman.phar não suporta a ativação de processos customizados no Windows.