Compose es un administrador de dependencias para PHP (similar a npm para Node.js o pip 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.
Este artículo explica cómo instalar Composer en sistemas Debian 10. También cubriremos cómo usar Composer para crear y administrar proyectos PHP.
Instalando Composer en Debian #
Antes de instalar Composer, asegúrese de tener todos los paquetes necesarios instalados en su sistema Debian:
sudo apt update
sudo apt install wget php-cli php-zip unzip
Composer ofrece un instalador escrito en PHP que usaremos para instalar Composer.
Descarga el instalador con wget
:
wget -O composer-setup.php https://getcomposer.org/installer
El comando anterior guardará el archivo como composer-setup.php
en el directorio de trabajo actual.
Composer es una aplicación CLI de un solo archivo que se puede instalar globalmente o como parte del proyecto. La instalación global requiere privilegios sudo.
-
Para instalar Composer globalmente como un comando para todo el sistema que estará disponible para todos los usuarios, simplemente coloque el archivo en un directorio que se encuentra en el sistema
PATH
. El siguiente comando instala Composer en el/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.10.10) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Ahora puede usar Composer ejecutando
composer
en tu terminal. -
Para instalar Composer localmente, descargue el archivo en el directorio raíz de su proyecto:
sudo php composer-setup.php --install-dir=/path/to/project
Esto descargará un archivo llamado
composer.phar
. Para usar Composer, navegue hasta el directorio del proyecto y ejecutephp composer.phar
Cuando esté disponible una nueva versión de Composer, puede actualizar la instalación con el siguiente comando:
sudo composer self-update
Primeros pasos con Composer #
Ahora que tiene Composer instalado en su sistema Debian, le mostraremos cómo crear un proyecto PHP.
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.
Ejecute los siguientes comandos para crear 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
Se ha creado ./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.1.3): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.18.1): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.18.1): Downloading (100%)
- Installing symfony/translation (v5.1.3): Downloading (100%)
- Installing nesbot/carbon (2.38.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
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more
Como se muestra en el resultado, Composer crea el composer.json
y descarga e instala carbon y todas sus dependencias.
Si enumera el directorio de su proyecto con ls
, verás que contiene dos archivos composer.json
y composer.lock
y un vendor
directorio.
ls -l
-rw-r--r-- 1 linuxize users 60 Aug 17 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Aug 17 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Aug 17 21:02 vendor
vendor
- el directorio donde se almacenan las dependencias del proyecto.composer.lock
- un archivo que contiene una lista de todos los paquetes instalados, incluida la versión de los paquetes.composer.json
- un archivo que describe el proyecto PHP y todas las dependencias de PHP.
Composer proporciona capacidades de carga automática que le 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: 2020-08-17 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.