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.
Este tutorial proporciona los pasos necesarios para instalar Composer en sistemas Debian 9. También cubriremos cómo usar Composer para crear y administrar proyectos PHP.
Requisitos previos #
Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo y de tener PHP instalado en su sistema Debian 9.
Instalando Composer #
Siga los pasos a continuación para instalar Composer en sistemas Debian:
-
Primero actualice el índice de paquetes e instale los paquetes necesarios con los siguientes comandos:
sudo apt update
sudo apt install php-cli php-zip wget unzip
-
Una vez que las dependencias estén instaladas, use el peaje php cli para descargar el script de instalación de Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
El comando anterior descargará
composer-setup.php
archivo en el directorio de trabajo actual. -
Verificaremos la integridad de los datos del script comparando el script
SHA-384
hash con el último hash del instalador que se encuentra en la página Claves públicas/Firmas del compositor.Ejecute el siguiente comando wget para descargar la firma esperada del último instalador de Composer desde la página Github de Composer y guárdela 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, copie y pegue el siguiente código en su consola:
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 valores hash coinciden, verá el siguiente resultado:
Installer verified
Si los valores hash no coinciden, verá
Installer corrupt
. En este caso, deberá volver a descargar el script de instalación de Composer y volver a verificar el valor de$HASH
variable conecho $HASH
. Una vez que se verifique el instalador, puede continuar con el siguiente paso. -
El siguiente comando 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
En este punto, tiene Composer instalado en su sistema Debian. Se instala como un comando de todo el sistema y estará disponible para todos los usuarios.
-
Para verificar la instalación simplemente escriba:
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]
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 tiene Composer instalado en su sistema Debian, le mostraremos cómo crear un proyecto PHP con Composer.
Comience creando un directorio que será la raíz del proyecto y mantenga el composer.json
expediente. Este 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
A continuación, inicializaremos un nuevo composer.json
archivo usando el composer require <package name>
comando y especificar el paquete que queremos descargar. 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 composer.json
archivo e instale el paquete carbon:
composer require nesbot/carbon
Using version ^1.34 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v3.4.17): Downloading (100%)
- Installing nesbot/carbon (1.34.0): 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
Composer creará un composer.json
archivo y descarga e instala carbon y todas sus dependencias.
Si enumera el directorio de su proyecto con el ls
comando, verá que contiene dos archivos composer.json
y composer.lock
y un vendor
directorio.
ls -l
-rw-r--r-- 1 linuxize users 60 Oct 16 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Oct 16 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Oct 16 21:02 vendor
vendor
- el directorio donde se almacenan las dependencias del proyecto.composer.lock
- archivo que contiene una lista de todos los paquetes instalados, incluida la versión de los paquetes.composer.json
- archivo que 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 la necesidad de require
o include
los archivos.
Crea un archivo llamado testing.php
y pega 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 fue generado automáticamente por Composer. Este archivo cargará automáticamente todas las bibliotecas requeridas.
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 como a continuación:
Now: 2018-10-16 21:08:45
Más tarde, si necesita actualizar los paquetes del proyecto, ingrese:
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.