Composer es un administrador de paquetes a nivel de aplicación para el lenguaje de programación PHP similar a NPM para Node.Js o PIP para Python. Composer proporciona un formato estándar para administrar todas las dependencias del software PHP y las bibliotecas requeridas al descargar todos los paquetes PHP necesarios de su proyecto y administrarlos por usted. Lo utilizan la mayoría de los marcos PHP modernos, como Laravel, Drupal, Magento y Symfony.
En el siguiente tutorial, aprenderá cómo descargar e instalar Composer, junto con algunos aspectos básicos sobre cómo trabajar con Composer en Debian 11 Bullseye.
Requisitos
- SO recomendado: Diana de Debian 11
- Cuenta de usuario: Una cuenta de usuario con privilegios sudo o acceso raíz (comando su) .
- Paquetes requeridos: wget, PHP 5.3 o superior
Actualización del sistema operativo
Actualice su Debian 11 sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:
sudo apt update && sudo apt upgrade
Acceso raíz o Sudo
De forma predeterminada, cuando crea su cuenta al inicio con Debian en comparación con otras distribuciones, no recibe automáticamente el estado de sudoers. Debe tener acceso a la contraseña raíz para usar el comando su o visite nuestro tutorial sobre cómo agregar un usuario a Sudoers en Debian.
Instalar dependencias
Se requieren los siguientes paquetes para descargar composer y para uso futuro. Tenga en cuenta que si usa una versión específica de PHP, deberá ajustar los paquetes de PHP a continuación para adaptarse a la versión. Por ejemplo, la instalación de PHP 8.0 será php8.0-mbstring.
sudo apt install curl wget php-common php-cli php-gd php-mysql php-curl php-intl php-mbstring php-bcmath php-imap php-xml php-zip git unzip
Instalar PHP Composer
El equipo de Composer ha creado un script PHP oficial para instalar y configurar PHP Composer en su sistema. Puede descargarlo visitando la página de descarga o abriendo su terminal Debian y ejecutando lo siguiente.
Método PHP:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Método WGET:
wget -O composer-setup.php https://getcomposer.org/installer
Ahora, con setup.php descargado, es hora de instalar composer. Esto puede ser de dos maneras diferentes, una en la que puede instalar composer globalmente, o la segunda alternativa que es instalar por aplicación PHP.
Para instalar globalmente:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
chmod +x /usr/local/bin/composer
Para instalar por aplicación:
cd /example-project/php-application && mkdir -p bin
php composer-setup.php --install-dir=bin --filename=composer
chmod +x bin/composer
Como se indicó anteriormente, deberá navegar hasta el directorio del proyecto PHP y crear un directorio bin para que se instale el compositor PHP.
Una vez hecho esto, confirme que Composer está instalado y qué compilación y versión es.
composer --version
Composer version 2.1.8 2021-09-15 13:55:14
Ahora prueba la instalación de tu compositor con el siguiente comando:
composer
Ejemplo de salida:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.1.8 2021-09-15 13:55:14
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Display timing and memory usage information
--no-plugins Whether to disable plugins.
-d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
--no-cache Prevent use of the cache
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
about Shows a short information about Composer.
archive Creates an archive of this composer package.
browse Opens the package's repository URL or homepage in your browser.
cc Clears composer's internal package cache.
check-platform-reqs Check that platform requirements are satisfied.
clear-cache Clears composer's internal package cache.
clearcache Clears composer's internal package cache.
config Sets config options.
create-project Creates new project from a package into given directory.
depends Shows which packages cause the given package to be installed.
diagnose Diagnoses the system to identify common errors.
dump-autoload Dumps the autoloader.
dumpautoload Dumps the autoloader.
exec Executes a vendored binary/script.
fund Discover how to help fund the maintenance of your dependencies.
global Allows running commands in the global composer dir ($COMPOSER_HOME).
help Displays help for a command
home Opens the package's repository URL or homepage in your browser.
i Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
info Shows information about packages.
init Creates a basic composer.json file in current directory.
install Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
licenses Shows information about licenses of dependencies.
list Lists commands
outdated Shows a list of installed packages that have updates available, including their latest version.
prohibits Shows which packages prevent the given package from being installed.
reinstall Uninstalls and reinstalls the given package names
remove Removes a package from the require or require-dev.
require Adds required packages to your composer.json and installs them.
run Runs the scripts defined in composer.json.
run-script Runs the scripts defined in composer.json.
search Searches for packages.
self-update Updates composer.phar to the latest version.
selfupdate Updates composer.phar to the latest version.
show Shows information about packages.
status Shows a list of locally modified packages.
suggests Shows package suggestions.
u Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
update Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
upgrade Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
validate Validates a composer.json and composer.lock.
why Shows which packages cause the given package to be installed.
why-not Shows which packages prevent the given package from being installed.
Cómo trabajar con PHP Composer
El tutorial le mostrará algunas funciones esenciales cuando se instala PHP composer para probar su funcionamiento.
Primero, crea el directorio de tu proyecto:
mkdir ~/composer-test
cd ~/composer-test
A continuación, busque un paquete de Packagist, o use alternativamente el ejemplo del tutorial y ejecute el siguiente comando para inicializar un nuevo archivo composer.json e instalar el paquete carbon:
composer require psr/log
Ejemplo de salida:
Using version ^1.1 for psr/log
./composer.json has been created
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking psr/log (1.1.4)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Downloading psr/log (1.1.4)
- Installing psr/log (1.1.4): Extracting archive
Generating autoload files
Como se indicó anteriormente, el compositor creará y actualizará automáticamente el archivo composer.json junto con las dependencias requeridas. Alternativamente, puede instalar o degradar paquetes existentes a un número de versión específico.
Ejemplo:
composer require psr/log=1.0
En el directorio del proyecto, puede listar los archivos y directorios dentro de él usando el comando ls :
ls -l
Ejemplo de salida:
./composer.json has been updated
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
- Downgrading psr/log (1.1.4 => 1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
- Downloading psr/log (1.0.0)
- Downgrading psr/log (1.1.4 => 1.0.0): Extracting archive
Generating autoload files
Un desglose de los términos y los archivos enumerados.
- compositor.json – Archivo creado para el proyecto y todas las dependencias de PHP.
- compositor.bloqueo – Archivo que contiene una lista de todos los paquetes y versiones.
- proveedor – Directorio donde se descargan e instalan las dependencias.
Con su proyecto, es posible que desee o necesite actualizar las dependencias, y esto se puede hacer ejecutando el siguiente comando:
composer update
Ejemplo de salida:
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files
Como puede ver arriba, ninguna dependencia requiere actualización. Si lo hubiera, se iniciaría el proceso.
Si ya no necesita el módulo, puede eliminarlo con el comando de eliminación del compositor:
composer remove psr/log
Ejemplo de salida:
./composer.json has been updated
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 0 updates, 1 removal
- Removing psr/log (1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 0 updates, 1 removal
- Removing psr/log (1.0.0)
Generating autoload files
Al eliminar paquetes, al igual que con la instalación, la eliminación actualizará automáticamente el archivo composer.json. Puedes verificar esto usando el comando cat .
cat composer.json
Ejemplo antes de la eliminación del paquete psr/log:
{
"require": {
"psr/log": "1.0"
}
}
Ejemplo después de la eliminación del paquete psr/log:
{
}
Cómo actualizar PHP Composer
Una característica útil de PHP composer es que puede autoactualizarse a la última versión estable disponible. Ejecute el siguiente comando para actualizar.
composer self-update
Ejemplo de salida:
You are already using the latest available Composer version 2.1.8 (stable channel).
Como se mencionó anteriormente, el compositor de PHP ya está en la última versión. Sin embargo, si hay una actualización disponible, se le pedirá que la actualice.