Cómo instalar y utilizar Composer en Debian 10

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de las dependencias
  • Paso 2: Descargar e instalar Composer
  • Paso 3: Uso de Composer en un proyecto PHP
  • Paso 4: Incluir el script de carga automática
  • Paso 5: Actualización de las dependencias del proyecto
  • Conclusión
  • Composer es una herramienta de gestión de dependencias popular para PHP, creada principalmente para facilitar la instalación y actualización de dependencias de proyectos. Verificará de qué otros paquetes depende un proyecto específico y los instalará por usted, utilizando las versiones adecuadas según los requisitos del proyecto. Composer también se usa comúnmente para iniciar nuevos proyectos basados ​​en frameworks PHP populares, como Symfony y Laravel.

    En esta guía, veremos cómo instalar y usar Composer en un servidor Debian 10.

    Prerrequisitos

    Para completar este tutorial, necesitará un servidor Debian 10 configurado siguiendo la guía de configuración inicial del servidor Debian 10, incluido un usuario regular con sudoprivilegios.

    Paso 1: Instalación de las dependencias

    Antes de poder descargar e instalar Composer, nos aseguraremos de que su servidor tenga todas las dependencias instaladas.

    Primero, actualice el caché del administrador de paquetes ejecutando:

    1. sudo apt update

    Ahora, vamos a instalar las dependencias. Las necesitaremos curlpara descargar Composer y php-clipara instalarlo y ejecutarlo. El php-mbstringpaquete es necesario para proporcionar funciones para una biblioteca que usaremos. gitComposer lo usa para descargar dependencias del proyecto y unzippara extraer paquetes comprimidos. Todo se puede instalar con el siguiente comando:

    1. sudo apt install curl php-cli php-mbstring git unzip

    Con los prerrequisitos instalados, podemos instalar el propio Composer.

    Paso 2: Descargar e instalar Composer

    Composer proporciona un instalador escrito en PHP. Lo descargaremos, verificaremos que no esté dañado y luego lo usaremos para instalar Composer.

    Asegúrate de estar en tu directorio de inicio, luego recupera el instalador usando curl:

    1. cd ~
    2. curl -sS https://getcomposer.org/installer -o composer-setup.php

    A continuación, verifique que el instalador coincida con el hash SHA-384 del último instalador que se encuentra en la página [Composer Public Keys / Signatures][composer-sigs]. Copie el hash de esa página y guárdelo como una variable de shell:

    1. HASH=48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5

    Asegúrese de sustituir el último hash por el valor resaltado.

    Ahora ejecute el siguiente script PHP para verificar que el script de instalación sea seguro de ejecutar:

    1. php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

    Verá el siguiente resultado.

    Producción

    Installer verified

    Si ves Installer corrupt, tendrás que descargar el script de instalación nuevamente y verificar que estás usando el hash correcto. Luego, ejecuta el comando para verificar el instalador nuevamente. Una vez que tengas un instalador verificado, puedes continuar.

    Para instalarlo composerglobalmente, utilice el siguiente comando que descargará e instalará Composer como un comando para todo el sistema llamado composer, en /usr/local/bin:

    1. sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

    Verás el siguiente resultado:

    OutputAll settings correct for using ComposerDownloading...Composer (version 1.8.6) successfully installed to: /usr/local/bin/composerUse it: php /usr/local/bin/composer

    Para probar su instalación, ejecute:

    1. composer

    Y verá un resultado que muestra la versión y los argumentos de Composer, similar a esto:

    Output   ______  / ____/___  ____ ___  ____  ____  ________  _____ / /   / __ / __ `__ / __ / __ / ___/ _ / ___// /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /____/____/_/ /_/ /_/ .___/____/____/___/_/                    /_/Composer version 1.8.6 2019-06-11 15:03:05Usage:  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.  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug. . .

    Esto verifica que Composer se instaló correctamente en su sistema y está disponible en todo el sistema.

    Nota: Si prefiere tener ejecutables de Composer separados para cada proyecto que aloje en este servidor, puede instalarlo localmente, por proyecto. Los usuarios de NPM estarán familiarizados con este enfoque. Este método también es útil cuando el usuario de su sistema no tiene permiso para instalar software en todo el sistema.

    Para ello, utilice el comando php composer-setup.php. Esto generará un composer.phararchivo en su directorio actual, que puede ejecutarse con ../composer.phar command

    Ahora veamos cómo usar Composer para administrar las dependencias de PHP.

    Paso 3: Uso de Composer en un proyecto PHP

    Los proyectos PHP suelen depender de bibliotecas externas, y administrar esas dependencias y sus versiones puede ser complicado. Composer resuelve ese problema al realizar un seguimiento de las dependencias y facilitar que otros las instalen.

    Para poder usar Composer en tu proyecto, necesitarás un composer.jsonarchivo. El composer.jsonarchivo le indica a Composer qué dependencias necesita descargar para tu proyecto y qué versiones de cada paquete pueden instalarse. Esto es extremadamente importante para mantener la coherencia de tu proyecto y evitar instalar versiones inestables que podrían causar problemas de compatibilidad con versiones anteriores.

    No es necesario crear este archivo manualmente, ya que es fácil encontrar errores de sintaxis al hacerlo. Composer genera automáticamente el composer.jsonarchivo cuando agrega una dependencia a su proyecto mediante el requirecomando. Puede agregar dependencias adicionales de la misma manera, sin necesidad de editar manualmente este archivo.

    El proceso de uso de Composer para instalar un paquete como dependencia en un proyecto implica los siguientes pasos:

    • Identifique qué tipo de biblioteca necesita la aplicación.
    • Busque una biblioteca de código abierto adecuada en Packagist.org, el repositorio de paquetes oficial de Composer.
    • Elige el paquete del cual deseas depender.
    • Ejecutar composer requirepara incluir la dependencia en el composer.jsonarchivo e instalar el paquete.

    Probemos esto con una aplicación de demostración.

    El objetivo de esta aplicación es transformar una oración dada en una cadena compatible con URL: un slug. Esto se usa comúnmente para convertir títulos de páginas en rutas URL (como la parte final de la URL de este tutorial).

    Comencemos creando un directorio para nuestro proyecto. Lo llamaremos slugify :

    1. cd ~
    2. mkdir slugify
    3. cd slugify

    Ahora es el momento de buscar en Packagist.org un paquete que nos pueda ayudar a generar slugs. Si buscas el término “slug” en Packagist, obtendrás un resultado similar a este:

    Verás dos números en el lado derecho de cada paquete de la lista. El número de la parte superior representa la cantidad de veces que se instaló el paquete y el número de la parte inferior muestra la cantidad de veces que se marcó con una estrella en GitHub. Puedes reordenar los resultados de la búsqueda en función de estos números (busca los dos íconos en el lado derecho de la barra de búsqueda). En términos generales, los paquetes con más instalaciones y más estrellas tienden a ser más estables, ya que mucha gente los usa. También es importante verificar la descripción del paquete para comprobar su relevancia y asegurarte de que sea lo que necesitas.

    Necesitamos un convertidor de cadenas a slugs sencillo. Según los resultados de la búsqueda, el paquete cocur/slugifyparece ser una buena opción, con una cantidad razonable de instalaciones y estrellas.

    Los paquetes en Packagist tienen un nombre de proveedor y un nombre de paquete . Cada paquete tiene un identificador único (un espacio de nombres) en el mismo formato que GitHub usa para sus repositorios, en la forma . La biblioteca que queremos instalar usa el espacio de nombres . Necesitas el espacio de nombres para requerir el paquete en tu proyecto.vendor/packagecocur/slugif

    Ahora que sabes exactamente qué paquete quieres instalar, ejecuta composer requirepara incluirlo como dependencia y también generar el composer.jsonarchivo para el proyecto:

    1. composer require cocur/slugify

    Verá el siguiente resultado mientras Composer descarga la dependencia:

    OutputUsing version ^3.2 for cocur/slugify./composer.json has been createdLoading composer repositories with package informationUpdating dependencies (including require-dev)Package operations: 1 install, 0 updates, 0 removals  - Installing cocur/slugify (v3.2): Downloading (100%)         Writing lock fileGenerating autoload files

    Como puede ver en el resultado, Composer decidió automáticamente qué versión del paquete usar. Si revisa el directorio de su proyecto ahora, contendrá dos archivos nuevos: composer.jsony composer.lock, y un vendordirectorio:

    1. ls -l
    Outputtotal 12-rw-r--r-- 1 sammy sammy   59 jul 15 13:53 composer.json-rw-r--r-- 1 sammy sammy 2952 jul 15 13:53 composer.lockdrwxr-xr-x 4 sammy sammy 4096 jul 15 13:53 vendor

    El composer.lockarchivo se utiliza para almacenar información sobre qué versiones de cada paquete están instaladas y garantizar que se utilicen las mismas versiones si alguien más clona su proyecto e instala sus dependencias. El vendordirectorio es donde se encuentran las dependencias del proyecto. vendorNo es necesario incluir la carpeta en el control de versiones: solo necesita incluir los archivos composer.json y composer.lock .

    Al instalar un proyecto que ya contiene un composer.jsonarchivo, ejecute composer installpara descargar las dependencias del proyecto.

    Echemos un vistazo rápido a las restricciones de versión. Si revisa el contenido de su composer.jsonarchivo, verá algo como esto:

    1. cat composer.json
    Output{    "require": {        "cocur/slugify": "^3.2"    }}

    Es posible que notes el carácter especial ^antes del número de versión en composer.json. Composer admite varias restricciones y formatos diferentes para definir la versión del paquete requerida, con el fin de proporcionar flexibilidad y, al mismo tiempo, mantener estable el proyecto. El ^operador de intercalación ( ) utilizado por el archivo generado automáticamente composer.jsones el operador recomendado para lograr la máxima interoperabilidad, siguiendo el control de versiones semántico. En este caso, define 3.2 como la versión mínima compatible y permite actualizaciones a cualquier versión futura anterior a 4.0 .

    En términos generales, no necesitarás modificar las restricciones de versión en tu composer.jsonarchivo. Sin embargo, algunas situaciones pueden requerir que edites manualmente las restricciones; por ejemplo, cuando se lanza una nueva versión importante de la biblioteca que necesitas y deseas actualizarla, o cuando la biblioteca que deseas usar no sigue el control de versiones semántico.

    A continuación se muestran algunos ejemplos para que comprenda mejor cómo funcionan las restricciones de versión de Composer:

    Restricción Significado Ejemplos de versiones permitidas
    ^1.0 = 1.0 2.0 1.0, 1.2.3, 1.9.9
    ^1.1.0 = 1.1.0 2.0 1.1.0, 1.5.6, 1.9.9
    ~1.0 = 1.0 2.0.0 1.0, 1.4.1, 1.9.9
    ~1.0.0 = 1.0.0 1.1 1.0.0, 1.0.4, 1.0.9
    1.2.1 1.2.1 1.2.1
    1.* = 1.0 2.0 1.0.0, 1.4.5, 1.9.9
    1.2.* = 1,2 1,3 1.2.0, 1.2.3, 1.2.9

    Para obtener una visión más detallada de las restricciones de la versión de Composer, consulte la documentación oficial.

    A continuación, veamos cómo cargar dependencias automáticamente con Composer.

    Paso 4: Incluir el script de carga automática

    Dado que PHP no carga clases automáticamente, Composer proporciona un script de carga automática que puedes incluir en tu proyecto para obtener la carga automática de forma gratuita. Esto hace que sea mucho más fácil trabajar con tus dependencias.

    Lo único que tienes que hacer es incluir el vendor/autoload.phparchivo en tus scripts PHP antes de crear cualquier instancia de clase. Composer genera automáticamente este archivo cuando agregas tu primera dependencia.

    Probémoslo en nuestra aplicación. Crea el archivo test.phpy ábrelo en tu editor de texto:

    1. nano test.php

    Agregue el siguiente código que trae el vendor/autoload.phparchivo, carga la cocur/slugifydependencia y lo usa para crear un slug:

    prueba.php

    ?phprequire __DIR__ . '/vendor/autoload.php'; use CocurSlugifySlugify;$slugify = new Slugify();echo $slugify-slugify('Hello World, this is a long sentence and I need to make a slug from it!');

    Guarde el archivo y salga del editor.

    Ahora ejecute el script:

    1. php test.php

    Esto produce la salida hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it.

    Las dependencias necesitan actualizaciones cuando salen nuevas versiones, así que veamos cómo manejar eso.

    Paso 5: Actualización de las dependencias del proyecto

    Siempre que desee actualizar las dependencias de su proyecto a versiones más recientes, ejecute el updatecomando:

    1. composer update

    Esto comprobará si hay versiones más nuevas de las bibliotecas que necesita en su proyecto. Si se encuentra una versión más nueva y es compatible con la restricción de versión definida en el composer.jsonarchivo, Composer reemplazará la versión anterior instalada. El composer.lockarchivo se actualizará para reflejar estos cambios.

    También puedes actualizar una o más bibliotecas específicas especificándolas de esta manera:

    1. composer update vendor/package vendor2/package2

    Asegúrese de confirmar los cambios en sus archivos composer.jsony composer.lockdespués de actualizar sus dependencias, de modo que quien trabaje en el proyecto tenga acceso a las mismas versiones del paquete.

    Conclusión

    Composer es una herramienta poderosa que todo desarrollador PHP debería tener en su arsenal. En este tutorial, instalaste Composer en Debian 10 y lo usaste en un proyecto simple. Ahora sabes cómo instalar y actualizar dependencias.

    Además de proporcionar una forma fácil y confiable de administrar las dependencias del proyecto, también establece un nuevo estándar de facto para compartir y descubrir paquetes PHP creados por la comunidad.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion