Ver índice de contenidos del libro

4.4. El comando install

El comando install procesa el archivo composer.json existente en ese mismo directorio, resuelve las dependencias y las instala bajo el directorio vendor/.

$ php composer.phar install

Si también existe un archivo composer.lock en el directorio, se instalan exactamente las versiones que indique ese archivo, sin importar lo que diga composer.json. Esto asegura que cualquiera que utilice esta librería se descargará las mismas versiones y por tanto, que todo funcionará tal y como se espera.

Si no existe el archivo composer.lock, Composer lo creará después de resolver todas las dependencias.

4.4.1. Opciones

  • --prefer-source: existen dos formas de descargar un paquete: source y dist. Al descargar versiones estables, Composer utiliza dist por defecto. El valor source hace referencia a un repositorio de código. Si utilizas la opción --prefer-source, Composer instalará la dependencia utilizando el código fuente del repositorio (es decir, source) siempre que exista. Esta opción es útil si quieres corregir algún error en un proyecto y quieres hacer directamente una copia local de la dependencia.
  • --prefer-dist: se trata de la opción contraria a --prefer-source, y hará que Composer instale las dependencias con dist siempre que sea posible. Esta opción reduce significativamente el tiempo necesario para instalar las dependencias y es ideal para los servidores de producción y para aquellos casos en los que no quieres actualizar las dependencias, sólo instalarlas. Esta opción también puede evitar problemas cuando no tienes bien configurado tu Git.
  • --dry-run: esta opción hace que Composer simule la instalación de las dependencias pero sin instalarlas realmente. Esta opción es útil para probar bien un comando de Composer antes de ejecutarlo.
  • --dev: fuerza a que se instalen también los paquetes indicados en la opción require-dev (esto es lo que realmente hace Composer por defecto).
  • --no-dev: no se instalan los paquetes indicados en la opción require-dev.
  • --no-scripts: no se ejecutan los scripts definidos en el archivo composer.json.
  • --no-custom-installers: no se ejecutan los instaladores personalizados.
  • --no-progress: no se muestra de forma actualizada el progreso de la instalación. Esto evita los problemas de las consolas y de los scripts que no son capaces de manejar bien algunos caracteres especiales utilizados para indicar el progreso de la instalación.
  • --optimize-autoloader (-o): mejora el rendimiento de la aplicación convirtiendo la carga automática de clases de PSR-0 en un mapa de clases. Esta opción se recomienda ejecutarla en el servidor de producción. Como crear este mapa de clases consume un tiempo no despreciable, esta opción está desactivada por defecto.