Empaquetado en phar

phar es un tipo de archivo de empaquetado similar a JAR en PHP. Puedes utilizar phar para empaquetar tu proyecto webman en un solo archivo phar, lo que facilita su implementación.

Agradecimientos especiales a fuzqing por su PR.

Nota
Es necesario desactivar la opción de configuración phar en php.ini, es decir, establecer phar.readonly = 0

Instalar la herramienta de línea de comandos

composer require webman/console

Empaquetar

Ejecuta el comando php webman build:phar en el directorio raíz de tu proyecto webman.
Esto generará un archivo webman.phar en el directorio bulid.

La configuración relacionada con el empaquetado se encuentra en config/plugin/webman/console/app.php

Comandos relacionados para iniciar y detener

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

Detener
php webman.phar stop

Ver estado
php webman.phar status

Ver estado de conexiones
php webman.phar connections

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

Notas

  • El proyecto empaquetado no soporta reload, actualizar el código requiere un restart.

  • Para evitar que el tamaño del archivo empaquetado sea demasiado grande y consuma demasiada memoria, puedes configurar las opciones exclude_pattern y exclude_files en config/plugin/webman/console/app.php para excluir archivos innecesarios.

  • Al ejecutar webman.phar, se generará un directorio runtime en el mismo directorio donde se encuentra webman.phar, que se utilizará para almacenar registros y otros archivos temporales.

  • Si tu proyecto utiliza un archivo .env, debes colocar el archivo .env en el mismo directorio donde se encuentra webman.phar.

  • Nunca almacenes archivos subidos por usuarios dentro del paquete phar, ya que operar archivos subidos por usuarios utilizando el protocolo phar:// es muy peligroso (vulnerabilidad de deserialización de phar). Los archivos subidos por usuarios deben almacenarse por separado en el disco fuera del paquete phar, como se indica a continuación.

  • Si tu negocio necesita subir archivos al directorio public, debes separar el directorio public y colocarlo en el mismo directorio donde se encuentra webman.phar. En este caso, necesitas configurar config/app.php.

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

    Los negocios pueden usar la función asistente public_path($ubicación relativa del archivo) para encontrar la ubicación real del directorio public.

  • Ten en cuenta que webman.phar no soporta iniciar procesos personalizados en Windows.