Composer es una herramienta de gestión de dependencias para php, muy parecida a cpan
para perla Si ha leído el tutorial sobre la instalación de cpan, la arquitectura le resultará algo familiar. Composer, como herramienta de línea de comandos, es el cliente que puede obtener y actualizar las bibliotecas php que marcamos como necesarias, así como las bibliotecas de las que dependen, etc.
La fuente de estas bibliotecas es packagist.org, un gran repositorio público de paquetes php. Podemos explorar el repositorio con un navegador para encontrar los paquetes que nos gustaría usar y luego incluirlos en nuestros proyectos con la ayuda de Composer. Y al resolver las dependencias por sí mismo, Composer puede hacernos la vida mucho más fácil si dependemos de paquetes externos. A su vez, también podemos compartir nuestras bibliotecas, para que la comunidad también pueda acceder a ellas a través de Composer.
En este tutorial, instalaremos Composer en Red Hat Enterprise Linux 8 y marcaremos un paquete como una dependencia necesaria para nuestro proyecto, para que la herramienta funcione.
En este tutorial aprenderás:
- Cómo instalar Composer
- Cómo definir el paquete como dependencia
- Cómo instalar dependencias con Composer
Ayuda principal del compositor.
Requisitos de software y convenciones utilizadas
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Red Hat Enterprise Linux 8 |
Software | Compositor 1.8.0 |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Instrucciones paso a paso sobre cómo instalar Composer en Redhat 8
Para poder usar el compositor, naturalmente necesitamos php
, con algunas extensiones. Se puede acceder a PHP 7.2 y sus extensiones después de habilitar los repositorios de gestión de suscripciones, así como en el instalador distribuido en formato ISO.
- Primero necesitamos instalar paquetes relacionados con php con
dnf
:dnf install php php-cli php-zip php-json
- Ahora podemos descargar el instalador de Composer con php:
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- Para poder acceder a la herramienta desde cualquier parte del sistema, la colocamos en el
$PATH
. /usr/local/bin
está incluido en el $PATH
por defecto.# php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer
Downloading...
Composer (version 1.8.0) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
- Para probar la funcionalidad, creamos un directorio de trabajo que es la raíz de nuestro
php
proyecto de desarrollo:$ mkdir myProject
E ingrésalo:
$ cd myProject
Después de navegar por el repositorio, decidimos que necesitaremos el zend-eventmanager
paquete, versión 3.2.1
. Creamos un archivo de texto llamado composer.json
con el siguiente contenido en el directorio raíz de nuestro proyecto:
{
"require": {
"zendframework/zend-eventmanager": "3.2.1"
}
}
- Para instalar el paquete que definimos como dependencia, podemos usar el
composer
recién instalado :$ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing zendframework/zend-eventmanager (3.2.1): Downloading (100%)
zendframework/zend-eventmanager suggests installing container-interop/container-interop (^1.1.0, to use the lazy listeners feature)
zendframework/zend-eventmanager suggests installing zendframework/zend-stdlib (^2.7.3 || ^3.0, to use the FilterChain feature)
Writing lock file
Generating autoload files
Si enumeramos nuestro directorio de trabajo, veremos un archivo de bloqueo y un vendor
directorio. El último es aquel en el que composer
descargó los paquetes requeridos.
$ ls
composer.json composer.lock vendor
$ ls vendor/
autoload.php composer zendframework
Dentro del vendor
directorio es el paquete que necesitábamos, y un autoload.php
. Este es el único archivo que necesitamos incluir en nuestro código para usar cualquiera de las bibliotecas que instalamos con composer
. Se regenera en la instalación/actualización de un nuevo paquete.