require_once otro otra llamar incluir include_once funcion entre diferencia desde conexion carpeta archivo php installation composer-php

php - otro - ¿Cuál es la diferencia entre require y require-dev?



php require_once relative path (3)

Esta pregunta ya tiene una respuesta aquí:

Soy nuevo en el composer y me gustaría saber la diferencia entre require y require-dev . El sitio web del compositor no ofrece una buena explicación de la diferencia entre estos dos.

La parte que no entiendo es la Lists packages required for developing this package, or running tests, etc. de los documentos oficiales de Composer.


La distinción clave es que Composer solo instalará require-dev dependencias require-dev para el "paquete raíz", el directorio donde ejecuta la composer install . La documentación describe esto como:

El paquete raíz es el paquete definido por el composer.json en la raíz de su proyecto. Es el principal composer.json que define los requisitos de su proyecto.

... y la documentación de require-dev especifica que es "solo de raíz".

En la práctica, esto significa que las dependencias require-dev un paquete no se usan si el paquete se está instalando como una dependencia para otra cosa (es decir, se instala en la carpeta del vendor otro proyecto).

Por lo tanto, si tiene phpunit en la lista require-dev para YourProject , y cloné YourProject y ejecuté la composer install en el directorio yourproject/ , Composer instalará phpunit en yourproject/vendor/ , porque es probable que esté haciendo algún desarrollo en YourProject . Como parte del desarrollo del desarrollo, probablemente querré ejecutar el conjunto de pruebas de YourProject , y para ello necesitaré phpunit .

Pero, si agrego YourProject como una dependencia de MyProject , la instalación del paquete myproject también instalará el paquete yourproject , pero no instalará phpunit .

Puede anular este comportamiento con las --dev y --no-dev , pero el comportamiento predeterminado se basa en si el paquete en cuestión es el paquete raíz .


Los paquetes require-dev son paquetes que no son necesarios para que su proyecto funcione y no deben incluirse en la versión de producción de su proyecto.

Normalmente, estos son paquetes como phpunit/phpunit que solo usaría durante el desarrollo.


me parece claro:

exigir

Enumera los paquetes requeridos por este paquete. El paquete no se instalará a menos que esos requisitos puedan cumplirse.

require-dev (solo raíz)

Enumera los paquetes necesarios para desarrollar este paquete (1) , o ejecutar pruebas, etc. Los requisitos de desarrollo del paquete raíz solo se instalarán si la instalación se ejecuta con --dev o si la actualización se ejecuta sin --no-dev .

http://getcomposer.org/doc/04-schema.md

1. Los paquetes utilizados para desarrollar un paquete.