Compose es un administrador de dependencias para PHP (similar a npm para Node.js o pip para Python).
Composer obtendrá todos los paquetes PHP necesarios 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.
En este tutorial, seguiremos los pasos para instalar y usar Composer en una máquina CentOS 7.
Requisitos previos #
Asegúrese de cumplir con los siguientes requisitos previos antes de continuar con este tutorial:
- Iniciar sesión como usuario con privilegios sudo
- Tenga PHP 7 instalado en su sistema CentOS 7.
Instalando Composer en CentOS #
Los siguientes pasos describen cómo instalar Composer en un sistema CentOS 7.
-
Primero instale el paquete PHP CLI (interfaz de línea de comandos) y todas las demás dependencias con:
sudo yum install php-cli php-zip wget unzip
-
Una vez que PHP CLI esté instalado, descargue el script de instalación de Composer con:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
El comando anterior descargará
composer-setup.php
archivo en el directorio de trabajo actual. -
Para verificar la integridad de los datos del script, compare el script
SHA-384
hash con el último hash del instalador que se encuentra en la página Claves públicas/Firmas del compositor.El siguiente comando wget descargará la firma esperada del último instalador de Composer desde la página Github de Composer y la almacenará en una variable llamada
HASH
: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
Si los valores hash no coinciden, verá
Installer corrupt
. En este caso, debe volver a descargar el script de instalación de Composer y verificar dos veces el valor de$HASH
variable conecho $HASH
. Una vez que se verifique el instalador, puede continuar 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
All settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
El
composer
se instala como un comando de todo el sistema y estará disponible para todos los usuarios. -
El último paso es verificar la instalación:
composer
El comando anterior imprimirá la versión, los comandos y los argumentos del Compositor.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
En este punto, ha instalado Composer con éxito en su sistema CentOS.
php composer-setup.php
que creará un archivo llamado composer.phar
en su directorio de trabajo actual. Puede usar el compositor ejecutando ./composer.phar <command>.
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 un directorio que será el directorio raíz del proyecto y mantenga el composer.json
archivo.
composer.json
El archivo describe su proyecto PHP, incluidas las dependencias de PHP y otros metadatos.
Cree el directorio del proyecto y cambie a él con:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
En este ejemplo, crearemos una aplicación de muestra que imprimirá la hora actual usando un paquete llamado carbon.
Ejecute el siguiente comando para inicializar un nuevo proyecto Composer e instalar el paquete carbon:
composer require nesbot/carbon
Using version ^2.2 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v4.1.4): Downloading (100%)
- Installing nesbot/carbon (2.2.0): Downloading (100%)
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
Como puede ver en el resultado anterior, Composer creará el composer.json
y descargará e instalará 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-r--r-- 1 linuxize users 60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 vendor
- El
vendor
directorio es el directorio donde se almacenan las dependencias del proyecto. - El
composer.lock
contiene una lista de todos los paquetes instalados, incluidas sus versiones. - El
composer.json
describe el proyecto PHP y todas las dependencias de PHP.
Composer proporciona capacidades de carga automática que nos permiten usar clases de PHP sin necesidad de usar require
o include
los archivos.
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 generado automáticamente por Composer que cargará automáticamente todas las bibliotecas.
A continuación, estamos creando un alias Carbon\Carbon
como Carbon
y en la última línea estamos imprimiendo la hora actual usando Carbon now
método.
Ejecute el script escribiendo:
php testing.php
La salida debería verse así:
Now: 2018-09-26 20:08:18
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.