Compositor requiere ext-zip falla

4 minutos de lectura

Avatar de usuario de Jeffrey L. Roberts
jeffrey l roberts

PHPStorm me dice que necesito que el compositor requiera ext-zip, sin embargo, ese comando está fallando…

PHPStorm dice

ingrese la descripción de la imagen aquí

El comando que estoy emitiendo es

composer require ext-zip

da como resultado

Your requirements could not be resolved to an installable set of packages.

y

Installation failed, reverting ./composer.json to its original content.

  • ¿Qué te hace pensar que deberías instalarlo usando composer? Esa es una extensión de PHP que debe instalar a través del sistema de paquetes de su sistema operativo o descargándolo manualmente

    –Nico Haase

    20 de mayo de 2019 a las 11:21

  • He actualizado la pregunta con una captura de pantalla de mi IDE

    –Jeffrey L. Roberts

    20 de mayo de 2019 a las 11:28

  • Y aún así, esa extensión no debe instalarse usando composer.

    –Nico Haase

    20 mayo 2019 a las 11:31

  • He actualizado la pregunta con una captura de pantalla con más detalles… Si se supone que no debe instalarse con composer, ¿quizás se supone que composer debe informar a los usuarios de la aplicación que se requiere la extensión?

    –Jeffrey L. Roberts

    20 mayo 2019 a las 11:33

  • Bueno, supongo que no falta, es solo que su IDE dice que no está en composer.json pero es parte de la extensión de PHP. ¿Tienes algún error al ejecutar el código? Si es así, compártalo con nosotros.

    – Karol Gasienica

    20 de mayo de 2019 a las 11:37


Avatar de usuario de Yevhen Kuzmenko
Yevhen Kuzmenko

Solución #1 – agregue ext-zip a su sección requerida de composer.json:

{
    "require" : {
        "ext-zip": "*"
    }
}

Solución #2 – instalar la extensión php-zip:

Ventanas:

Descomente esta línea en su php.ini

;extensión=php_zip.dll

Linux:

sudo apt-get install php-zip

o

sudo apt-get install php7.0-zip (asegúrese de escribir SU versión de php, puede verificar su versión haciendo el comando php -v)

Luego, debe reiniciar su servidor web.

reinicio del servicio sudo apache2

  • ¿Puede explicar más cómo eso resuelve el mensaje dado? El IDE obviamente da alguna conexión a composer.json

    –Nico Haase

    20 mayo 2019 a las 11:41

  • Y puedes agregar algunos explicación eso cubre por qué apareció el mensaje inicialmente y qué hace su código contra él.

    –Nico Haase

    20 de mayo de 2019 a las 12:02

  • Respondido por stackoverflow.com/a/56220471/38408, las dependencias ext- en composer son requisitos del sistema que el compositor puede validar pero no administrar. En su lugar, se utilizan otros mecanismos de configuración del servidor para configurar el servidor con esos paquetes.

    – Lado gris

    20 mayo 2019 a las 21:54

Si su código funciona bien, ya tiene la extensión zip instalada en su máquina. PHPStorm agrega esta sugerencia para garantizar que cualquier otro lugar donde se implemente el proyecto también tenga las extensiones correctas.

Agregar manualmente la línea en su archivo composer.json (require bloquear) "ext-zip": "*", (y otros que puede sugerir, como ext-apc, ext-redis y ext-jsonasí como cualquier otro que pueda estar usando) se asegurará de que cuando lo implemente, composer también pueda verificar que los elementos adicionales apropiados estén instalados.

Sin embargo, es solo una advertencia y puede ignorarla, o puede permitir que Composer se asegure de que sus servidores estén configurados como serían necesarios para ejecutar su código y hacer cosas con archivos comprimidos. Si su servidor no tiene instalado ext-zip, composer install se quejaría y dejaría de guardar problemas más tarde cuando descubra que el código falla sin la extensión zip, et al.

  • claro, pero ¿qué pasa si me molesto al ver todo el código marcado como algún tipo de error en IDEA? No quiero verlo ni modificar composer.json solo por eso 🙂

    – OZZIE

    13 de diciembre de 2019 a las 11:58

La sugerencia dada proviene de PhpStorm, no del propio compositor: su IDE ha detectado que su código usa un método (o en este caso: el ZipArchive class) que solo está disponible cuando la extensión ZIP está habilitada. Pero tu composer.json no contenía ese requisito hasta el momento.

Entonces, PhpStorm le pide que agregue este requisito al archivo JSON para que los requisitos para ejecutar su código sean más precisos. Cómo resuelve ese requisito depende de usted: la mejor manera sería instalar esa extensión, pero eso está fuera del alcance del compositor.

¿Ha sido útil esta solución?