Composer 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.

Instalación de Composer en Debian

Antes de instalar Composer, asegúrese de tener todos los paquetes necesarios instalados en su sistema Debian:

sudo apt updatesudo 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.phpen 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 esté en el sistema PATH . El siguiente comando instala Composer en el /usr/local/bindirectorio:

    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 ejecutándolo composeren su 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.pharPara 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  

Introducción a 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 contendrá el composer.jsonarchivo. 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-projectcd ~/my-first-composer-project

A continuación, inicializaremos un nuevo composer.jsonarchivo usando el composer require <package name>comando y especificaremos 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.jsonarchivo e instalar el paquete carbon:

composer require nesbot/carbon
./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.jsonarchivo y descarga e instala carbon y todas sus dependencias.

Si enumera el directorio de su proyecto con ls , verá que contiene dos archivos composer.jsoncomposer.lock, y un vendordirectorio.

ls -l
-rw-r--r-- 1 velozega users   60 Aug 17 21:02 composer.json
-rw-r--r-- 1 velozega users 6851 Aug 17 21:02 composer.lock
drwxr-xr-x 5 velozega 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.
Puede buscar paquetes PHP en el repositorio de Composer Packagist .

Composer proporciona capacidades de carga automática que le permiten usar clases de PHP sin necesidad de requirearchivos include.

Cree un archivo llamado testing.phpy pegue 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.phparchivo que Composer generó automáticamente. Este archivo cargará automáticamente todas las bibliotecas requeridas.

A continuación, creamos un alias Carbon\Carboncomo Carbony, en la última línea, imprimimos la hora actual usando el nowmétodo Carbon.

Ejecute el script escribiendo:

php testing.php

La salida debería ser similar a la siguiente:

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.jsonComposer actualizará el paquete.

Conclusión#

Le mostramos cómo instalar Composer en Debian 10 y cómo usarlo para crear un proyecto PHP básico.

Para obtener más información sobre Composer, visite la página de documentación oficial .

Si tiene alguna pregunta, por favor deje un comentario a continuación.