Buscar..


Introducción

Composer es el gestor de dependencias más utilizado de PHP. Es análogo a npm en Node, pip para Python o NuGet para .NET.

Sintaxis

  • ruta php / a / composer.phar [comando] [opciones] [argumentos]

Parámetros

Parámetro Detalles
licencia Define el tipo de licencia que desea utilizar en el Proyecto.
autores Define los autores del proyecto, así como los detalles del autor.
apoyo Define los correos de soporte, el canal de irc y varios enlaces.
exigir Define las dependencias reales, así como las versiones del paquete.
require-dev Define los paquetes necesarios para desarrollar el proyecto.
sugerir Define las sugerencias de paquetes, es decir, paquetes que pueden ayudar si se instalan.
carga automática Define las políticas de carga automática del proyecto.
autoload-dev Define las políticas de carga automática para el desarrollo del proyecto.

Observaciones

La carga automática solo funcionará para las bibliotecas que especifican información de carga automática. La mayoría de las bibliotecas cumplen y se adherirán a un estándar como PSR-0 o PSR-4 .

Enlaces Útiles

Pocas sugerencias

  1. Deshabilita xdebug al ejecutar Composer.
  2. No ejecute Composer como root . Los paquetes no son de confianza.

¿Qué es el compositor?

Composer es un gestor de paquetes / dependencias para PHP. Puede usarse para instalar, realizar un seguimiento y actualizar las dependencias de su proyecto. Composer también se encarga de cargar automáticamente las dependencias en las que se basa su aplicación, lo que le permite usar fácilmente la dependencia dentro de su proyecto sin preocuparse de incluirlas en la parte superior de cualquier archivo dado.

Las dependencias para su proyecto se enumeran dentro de un archivo composer.json que normalmente se encuentra en la raíz de su proyecto. Este archivo contiene información sobre las versiones requeridas de paquetes para producción y también para desarrollo.

Se puede encontrar un resumen completo del esquema composer.json en el sitio web de Composer .

Este archivo se puede editar manualmente usando cualquier editor de texto o automáticamente a través de la línea de comandos a través de comandos como el composer require <package> o el composer require-dev <package> .

Para comenzar a utilizar compositor en su proyecto, deberá crear el archivo composer.json . Puede crearlo manualmente o simplemente ejecutar el composer init . Después de ejecutar el composer init en su terminal, le pedirá información básica sobre su proyecto: Nombre del paquete ( proveedor / paquete - por ejemplo, laravel/laravel ), Descripción - opcional , Autor y alguna otra información como Estabilidad mínima, Licencia y Requisitos Paquetes.

La clave require en su archivo composer.json especifica a Composer de qué paquetes depende su proyecto. require toma un objeto que asigna nombres de paquetes (por ejemplo, monolog / monolog ) a restricciones de versión (por ejemplo, 1.0. *).

{
    "require": {
        "composer/composer": "1.2.*"
    }
}

Para instalar las dependencias definidas, deberá ejecutar el comando de composer install editor y, a continuación, encontrará los paquetes definidos que coincidan con la restricción de version suministrada y los descargará en el directorio del vendor . Es una convención colocar el código de un tercero en un directorio llamado vendor .

Notará que el comando de install también creó un archivo composer.lock .

Un composer.lock archivo es generado automáticamente por Compositor. Este archivo se usa para rastrear las versiones instaladas actualmente y el estado de sus dependencias. La ejecución de composer install instalará los paquetes exactamente en el estado almacenado en el archivo de bloqueo.

Autocarga con compositor

Si bien el compositor proporciona un sistema para administrar las dependencias para proyectos PHP (por ejemplo, de Packagist ), también puede servir notablemente como un cargador automático, especificando dónde buscar espacios de nombres específicos o incluir archivos de funciones genéricas.

Comienza con el archivo composer.json :

{
    // ...
    "autoload": {
        "psr-4": {
            "MyVendorName\\MyProject": "src/"
        },
        "files": [
            "src/functions.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "MyVendorName\\MyProject\\Tests": "tests/"
        }
    }
}

Este código de configuración garantiza que todas las clases en el espacio de nombres MyVendorName\MyProject se asignen al directorio src y todas las clases en MyVendorName\MyProject\Tests al directorio de tests (en relación con su directorio raíz). También incluirá automáticamente el archivo functions.php .

Después de poner esto en su archivo composer.json , ejecute la composer update en un terminal para que el compositor actualice las dependencias, el archivo de bloqueo y genere el archivo autoload.php . Cuando se implementa en un entorno de producción, usaría composer install --no-dev . El archivo autoload.php se puede encontrar en el directorio del vendor que se debe generar en el directorio donde reside composer.json .

Usted debe require este archivo temprana en un punto de instalación en el ciclo de vida de la aplicación mediante una línea similar a la de abajo.

require_once __DIR__ . '/vendor/autoload.php';

Una vez incluido, el archivo autoload.php se encarga de cargar todas las dependencias que proporcionó en su archivo composer.json .

Algunos ejemplos de la ruta de clase a la asignación de directorios:

  • MyVendorName\MyProject\Shapes\Squaresrc/Shapes/Square.php .
  • MyVendorName\MyProject\Tests\Shapes\Squaretests/Shapes/Square.php .

Beneficios de usar Composer

Composer realiza un seguimiento de las versiones de los paquetes que ha instalado en un archivo llamado composer.lock , que está destinado a comprometerse con el control de versiones, de modo que cuando se clone el proyecto en el futuro, simplemente ejecutando composer install se descargará e instalará todas las dependencias del proyecto .

Compositor se ocupa de las dependencias de PHP por proyecto. Esto facilita tener varios proyectos en una máquina que dependen de versiones separadas de un paquete PHP.

Compositor rastrea las dependencias que solo están destinadas a los entornos de desarrollo.

composer require --dev phpunit/phpunit

Composer proporciona un autocargador, lo que facilita enormemente comenzar con cualquier paquete. Por ejemplo, después de instalar Goutte con el composer require fabpot/goutte , puede comenzar a usar Goutte en un nuevo proyecto de inmediato:

<?php

require __DIR__ . '/vendor/autoload.php';

$client = new Goutte\Client();

// Start using Goutte

Composer le permite actualizar fácilmente un proyecto a la última versión permitida por su composer.json. P.EJ. composer update fabpot/goutte , o para actualizar cada una de las dependencias de su proyecto: composer update .

Diferencia entre "instalación del compositor" y "actualización del compositor"

composer update

composer update nuestras dependencias según se especifican en composer.json .

Por ejemplo, si nuestro proyecto usa esta configuración:

"require": {
    "laravelcollective/html": "2.0.*"
}

Suponiendo que hayamos instalado la versión 2.0.1 del paquete, la composer update ejecución provocará una actualización de este paquete (por ejemplo, a 2.0.2 , si ya se ha publicado).

En detalle la composer update :

  • Leer composer.json
  • Elimine los paquetes instalados que ya no sean necesarios en composer.json
  • Compruebe la disponibilidad de las últimas versiones de nuestros paquetes requeridos.
  • Instala las últimas versiones de nuestros paquetes.
  • Actualice composer.lock para almacenar la versión de los paquetes instalados.

composer install

composer install todas las dependencias especificadas en el archivo composer.lock en la versión especificada (bloqueada), sin actualizar nada.

En detalle:

  • Leer el archivo composer.lock
  • Instala los paquetes especificados en el archivo composer.lock .

Cuándo instalar y cuándo actualizar.

  • composer update se utiliza principalmente en la fase de 'desarrollo', para actualizar nuestros paquetes de proyectos.

  • composer install se utiliza principalmente en la 'fase de implementación' para instalar nuestra aplicación en un servidor de producción o en un entorno de prueba, utilizando las mismas dependencias almacenadas en el archivo composer.lock creado por la composer update .

Compositor de comandos disponibles

Mando Uso
acerca de Breve información sobre el compositor
archivo Crear un archivo de este paquete compositor
vistazo Abre la URL del repositorio del paquete o la página de inicio en su navegador.
limpiar cache Borra la caché interna del paquete del compositor.
limpiar cache Borra la caché interna del paquete del compositor.
configuración Establecer opciones de configuración
crear proyecto Crear nuevo proyecto desde un paquete en el directorio dado.
depende Muestra qué paquetes hacen que se instale el paquete dado
diagnosticar Diagnostica el sistema para identificar errores comunes.
volcado-autoload Vuelca el autoloader
Dumpautoload Vuelca el autoloader
exec Ejecutar un script binario / vendedor
global Permite ejecutar comandos en el directorio del compositor global ($ COMPOSER_HOME).
ayuda Muestra ayuda para un comando
casa Abre la URL del repositorio del paquete o la página de inicio en su navegador.
info Mostrar información sobre paquetes
en eso Crea un archivo composer.json básico en el directorio actual.
instalar Instala las dependencias del proyecto desde el archivo composer.lock, si está presente, o recae en el composer.json.
licencias Mostrar información sobre licencias de dependencias.
lista Listas de comandos
anticuado Muestra una lista de paquetes instalados que tienen actualizaciones disponibles, incluida su última versión.
prohíbe Muestra qué paquetes impiden que se instale el paquete dado
retirar Elimina un paquete del require o require-dev
exigir Agrega los paquetes requeridos a tu composer.json y los instala
ejecutar guión Ejecute los scripts definidos en composer.json.
buscar Buscar paquetes
auto-actualización Actualiza composer.phar a la última versión.
auto actualización Actualiza composer.phar a la última versión.
espectáculo Mostrar información sobre paquetes
estado Mostrar una lista de paquetes modificados localmente
sugiere Mostrar sugerencias de paquetes
actualizar Actualiza tus dependencias a la última versión de acuerdo con composer.json y actualiza el archivo composer.lock.
validar Valida un composer.json y composer.lock
por qué Muestra qué paquetes hacen que se instale el paquete dado
Por qué no Muestra qué paquetes impiden que se instale el paquete dado

Instalación

Puede instalar Composer localmente, como parte de su proyecto, o globalmente como un ejecutable de todo el sistema.

En la zona

Para instalar, ejecute estos comandos en su terminal.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# to check the validity of the downloaded installer, check here against the SHA-384:
# https://composer.github.io/pubkeys.html
php composer-setup.php
php -r "unlink('composer-setup.php');"

Esto descargará composer.phar (un archivo de archivo PHP) al directorio actual. Ahora puede ejecutar php composer.phar para usar Composer, por ejemplo

php composer.phar install

Globalmente

Para usar Composer globalmente, coloque el archivo composer.phar en un directorio que sea parte de su PATH

mv composer.phar /usr/local/bin/composer

Ahora puedes usar composer cualquier lugar en lugar de php composer.phar , por ejemplo

composer install


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow