Compose es un administrador de dependencias para PHP (como npm para Node.js o pipis para Python).
Composer extraerá todos los paquetes PHP requeridos de los que depende su proyecto y los administrará por usted. Se utiliza en todos los marcos y plataformas PHP modernos, como Laravel, Symfony, Drupal y Magento 2.
Este tutorial repasa los pasos para instalar Composer en CentOS 8. Si tiene prisa y no desea verificar la integridad del archivo, desplácese hacia abajo hasta la sección Instalación de Composer - Camino rápido.
Requisitos previos #
Asegúrese de haber cumplido con los siguientes requisitos antes de continuar:
- Iniciar sesión como usuario con privilegios sudo
- Tenga PHP instalado en su sistema CentOS 8.
Instalando Composer en CentOS #
Realice los siguientes pasos para instalar Composer en CentOS 8.
-
Instale el paquete PHP CLI (interfaz de línea de comandos) y todas las demás dependencias con:
sudo dnf install php-cli php-json php-zip wget unzip
-
Una vez que PHP CLI esté instalado, descargue el script de instalación de Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
El comando anterior descarga un archivo llamado
composer-setup.php
en el directorio de trabajo actual. -
Verifique la integridad de los datos comparando el
SHA-384
del archivo hash con el hash que se encuentra en la página de firmas/claves públicas del compositor.El siguiente
wget
El comando descarga la firma del último instalador de Composer desde la página Github de Composer y la almacena en una variable llamadaHASH
:HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Para verificar que el script de instalación no esté dañado, ejecute el siguiente comando:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Si los hashes coinciden, se mostrará el siguiente mensaje:
Installer verified
De lo contrario, si los valores hash no coinciden, verá
Installer corrupt
. Una vez que se verifique la integridad, continúe con el siguiente paso. -
Ejecute el siguiente comando para instalar Composer en
/usr/local/bin
directorio:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
El comando anterior instala
composer
como un comando de todo el sistema y disponible para todos los usuarios. La salida se verá asíAll settings correct for using Composer Downloading... Composer (version 1.10.1) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
El comando anterior instala
composer
como un comando de todo el sistema y disponible para todos los usuarios. -
Verifique la instalación imprimiendo la versión de Composer:
composer -V
Composer version 1.10.1 2020-03-13 20:34:27
En este punto, ha instalado Composer con éxito en su sistema CentOS y puede comenzar a usarlo.
Instalando Composer [Quick Way] #
Realice los siguientes pasos para instalar rápidamente Composer en su sistema CentOS 8:
-
Instale PHP CLI y Zip:
sudo dnf install php-cli php-json php-zip curl unzip
-
Descargar Composer con curl:
curl -sS https://getcomposer.org/installer |php
-
Mueva el archivo Composer a
/usr/local/bin
directorio:sudo mv composer.phar /usr/local/bin/composer
Primeros pasos con Composer #
Ahora que Composer está instalado en su sistema CentOS, le mostraremos cómo usar Composer en un proyecto PHP.
Comience creando el directorio raíz del proyecto y navegue hasta él:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
En este ejemplo, usaremos un paquete PHP llamado carbon para crear una aplicación de muestra que imprima la hora actual.
Ejecute el siguiente comando para inicializar un nuevo proyecto Composer e instalar el paquete carbon:
composer require nesbot/carbon
sing version ^2.32 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.0.1): Downloading (connecting..Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.15.0): Downloading (100%)
- Installing symfony/translation (v5.0.6): Downloading (100%)
- Installing nesbot/carbon (2.32.1): Downloading (100%)
symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Como puede ver en el resultado anterior, Composer crea un archivo llamado composer.json
y descarga carbon y todas sus dependencias.
Si enumera el directorio de su proyecto, verá que contiene dos archivos composer.json
y composer.lock
y un vendor
directorio.
ls -l
-rw-rw-r--. 1 vagrant vagrant 60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 vagrant vagrant 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 vagrant vagrant 82 Mar 27 18:06 vendor
vendor
es el directorio donde se almacenan las dependencias del proyecto.- El
composer.lock
El archivo contiene una lista de todos los paquetes instalados, incluidas sus versiones. composer.json
es un archivo que describe su proyecto PHP, incluidas las dependencias de PHP y otros metadatos.
Composer tiene capacidades de carga automática, que le permiten usar clases de PHP sin la necesidad de require
o include
declaraciones.
Crea un archivo llamado testing.php
y agrega el siguiente código:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Analicemos el código línea por línea.
En la primera línea después de la etiqueta php de apertura incluimos el vendor/autoload.php
archivo que carga automáticamente todas las bibliotecas.
A continuación, estamos creando un alias Carbon\Carbon
como Carbon
. La última línea imprime la hora actual usando Carbon now
método.
Ejecute el script escribiendo:
php testing.php
La salida debería verse así:
Now: 2020-03-27 22:12:26
Más adelante, si desea actualizar sus paquetes de PHP, simplemente puede ejecutar:
composer update
El comando anterior buscará versiones más nuevas de los paquetes instalados, y si se encuentra una versión más nueva y la restricción de la versión coincide con la especificada en composer.json
, Composer actualizará el paquete.