Compositor es el administrador de dependencias de referencia de la comunidad PHP. Simplifique la instalación, actualización y uso de paquetes de terceros. Los paquetes se pueden alojar desde repositorios públicos y privados, y los proyectos más populares se publican en Packagist.
Instalación de Composer
Composer es un esfuerzo de la comunidad que no está incluido con PHP. Se distribuye como un archivo PHP PHAR desde getcomposer.org. Algunas distribuciones de Linux incluyen Composer en sus repositorios de software, pero la instalación de esta forma generalmente proporciona una versión desactualizada.
Asegúrese de tener PHP instalado antes de continuar. PHP 5.3 es la versión compatible más antigua en el momento de escribir este artículo. También necesitarás git
es unzip
en su sistema si desea instalar paquetes desde la fuente.
Composer proporciona una secuencia de comandos de configuración automática. Empiece por descargar el instalador a su directorio de trabajo:
curl https://getcomposer.org/installer -o composer-setup.php
Ahora debe verificar el hash del instalador para verificar que no haya sido manipulado. Referirse a Sitio web del compositor para comprobar el hash más reciente y obtener un código de verificación de muestra.
Luego, use el script de instalación para instalar Composer:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Esto descargará Composer en /usr/local/bin
, lo que le permite sentarse en su camino junto con los otros ejecutables. Intenta correr composer
en su shell para verificar que todo está funcionando. Se debe mostrar la versión de Composer, seguida de una lista de los comandos de Composer disponibles.
Para actualizar Composer en el futuro, ejecute composer self-update
. Esto reemplazará automáticamente su binario Composer con la última versión. No necesitarás usar el archivo composer-setup.php
script de nuevo para que pueda eliminarlo ahora.
Prepara tu proyecto
Necesitará crear un composer.json
archivos en el directorio de trabajo del proyecto antes de que pueda comenzar a usar Composer. Correr composer init
para crear uno de forma interactiva. Esto le permitirá establecer una configuración básica.
Siga las indicaciones de la línea de comandos para proporcionar información sobre su proyecto, como el nombre, la descripción y los detalles del autor. Los nombres de los paquetes usan la extensión vendor/package
sintaxis para evitar conflictos entre autores en repositorios públicos. Deberías usar tu nombre de usuario de Packagist como vendor
componente.
La mayoría de las claves en composer.json
son opcionales a menos que tenga la intención de publicar su código principal en Packagist. Puede encontrar una descripción completa de la estructura de archivos en el Documentación del compositor sitio.
Instalación del paquete
Puede agregar paquetes a su proyecto usando el composer require
mando:
composer require vendor/package
Busque paquetes para instalar usando el Sitio web de Packagist. Se agregarán al archivo require
sección de tu proyecto composer.json
archivo. Una vez instalado, la fuente del paquete entra en el archivo vendor
carpeta dentro del proyecto.
Composer se basa en el control de versiones semántico para administrar las actualizaciones de paquetes. Se escribe la versión exacta de cada paquete instalado composer.lock
en el directorio de su proyecto. Esto permite a Composer identificar el paquete específico a instalar cuando composer.json
indica que una variedad de versiones es aceptable.
Ambos deberían comprometerse composer.json
es composer.lock
al control de fuente. Luego se pueden ejecutar otros desarrolladores que trabajen en su proyecto composer install
para adquirir todas las dependencias que ha definido.
Los paquetes como los ejecutores de prueba se pueden marcar como dependencias de desarrollo proporcionando la extensión --dev
bandera al require
mando. Se separarán en un archivo require-dev
sección interior composer.json
. Al instalar sus paquetes, use composer install --no-dev
para descartar adicciones al desarrollo. Esto es útil cuando se usa Composer en scripts de implementación y sistemas de CI.
Actualización del paquete
Debe intentar mantener sus paquetes actualizados para no perder la seguridad y las correcciones de errores. Ejecutar el composer outdated
comando para ver una lista de dependencias en `composer.json` que tienen nuevas versiones disponibles.
Para aplicar las actualizaciones, ejecute composer update
. Esto respetará el control de versiones semántico y desplegará la versión más reciente de cada paquete, dentro de las restricciones de versión especificadas por composer.json
. Un paquete marcado como ^1.2
se actualizará a 1.2.xo 1.3.x pero no a 2.0. los Documentos del compositor incluir información detallada sobre cómo la herramienta resuelve varias formas de restricciones de versión.
La actualización de un paquete reescribirá automáticamente su archivo composer.lock
archivo para especificar la nueva versión. Otros desarrolladores que trabajan en su proyecto pueden volver a ejecutar composer install
para obtener los paquetes exactos que está utilizando.
El autocargador Composer
La carga automática es el mecanismo preferido para descubrir archivos fuente dentro de PHP. Composer tiene soporte de primera clase para la carga automática; la mayoría de las veces, su cargador automático será el único archivo que necesita require_once()
dentro de su proyecto.
Al instalar dependencias, Composer escribirá automáticamente un autocargador en vendor/autoload.php
. Los paquetes especifican cómo deben cargarse automáticamente usando el archivo autoload
campo en composer.json
. Debe configurar esto para su proyecto para que Composer pueda cargar automáticamente sus archivos también:
{ "autoload": { "psr-4": { "ExampleProject\": "src/" } } }
El fragmento de arriba configurará la carga automática de su proyecto usando el estándar PSR-4. Recursos de base de código dentro ExampleProject
el espacio de nombres se asignará a los archivos dentro src
directorio, por ejemplo use ExampleProjectExampleClassesMyClass
automáticamente require_once("src/ExampleProject/ExampleClasses/MyClass.php")
.
El único archivo que necesitará crear manualmente require_once()
es el propio cargador automático:
require_once(__DIR__ . "/vendor/autoload.php");
Debe agregar la fila lo antes posible en su aplicación. Esto asegurará que la carga automática esté habilitada antes de comenzar a usar clases e interfaces dentro de su base de código.
A veces, puede ser necesario forzar la regeneración del cargador automático. Esto sucede a menudo porque ha actualizado su proyecto autoload
configuración. Tu puedes correr composer dump-autoload
para escribir un nuevo autocargador bajo demanda.
Resumen
Composer simplifica el desarrollo de PHP al proporcionar el administrador de dependencias que falta en el lenguaje principal. Con Composer, puede incrustar fácilmente código de terceros en sus proyectos, sin tener que descargar manualmente los archivos fuente y mantenerlos actualizados.
El autocargador integrado de Composer le permite acceder a los paquetes instalados sin ningún trabajo adicional de su parte. La herramienta tambien incluye un programa de ejecución de secuencias de comandos que le permite realizar tareas dentro de su base de código agregando comandos al archivo scripts
bloquear composer.json
. Utilizar composer run my-script
para ejecutar el script.
Deja una respuesta