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 updatesudo 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.phparchivo en el directorio de trabajo actual. -
Verificaremos la integridad de los datos del script comparando el script
SHA-384hash 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 verifiedSi 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$HASHvariable conecho $HASH. Una vez que se verifique el instalador, puede continuar con el siguiente paso. -
El siguiente comando instalará Composer en
/usr/local/bindirectorio:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerAll settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composerEn 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:
composerEl 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-projectcd ~/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.