PHP
Gerente de dependencia del compositor
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
- Packagist : navega por los paquetes disponibles (que puedes instalar con Composer).
- Documentacion oficial
- Guía oficial de introducción
Pocas sugerencias
- Deshabilita xdebug al ejecutar Composer.
- 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\Square
➔src/Shapes/Square.php
. -
MyVendorName\MyProject\Tests\Shapes\Square
➔tests/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 archivocomposer.lock
creado por lacomposer 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