jeffrey l roberts
PHPStorm me dice que necesito que el compositor requiera ext-zip, sin embargo, ese comando está fallando…
PHPStorm dice
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.
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-json
así 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.
¿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