La gestión de dépendencias
Introducción
No hace mucho tiempo, cuando queríamos instalar una biblioteca, bastaba con hacer clic en el archivo zip para descargarlo, luego descomprimirlo en una carpeta y listo. Hoy en día, las cosas han cambiado.
¿Por qué?
Porque la mayoría de las bibliotecas (o librerías) ya no funcionan independientemente. Necesitan una multitud de otras bibliotecas independientes a las que están conectadas y que también deben cargarse. A esto se le llama dependencias.
Por lo tanto, es necesario tener una herramienta que se encargue de descargar todo lo necesario para que la biblioteca funcione. Esta herramienta se llama gestor de dependencias.
Existen muchas herramientas de gestión de dependencias. Veremos las dos más utilizadas: Composer y Scoop (solo en Windows).
El gestor de dependencias Composer
Es un programa escrito en PHP que se encuentra aquí: https://getcomposer.org
![images/07RIT01.png](https://www.eni-training.com/download/3344c6bd-83e8-47fb-bff9-51328b4bd484/images/07RIT01.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Haga clic en Download:
![images/07RIT02.png](https://www.eni-training.com/download/3344c6bd-83e8-47fb-bff9-51328b4bd484/images/07RIT02.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Puede hacer clic en el enlace Composer-Setup.exe para instalar Composer en su PC.
Aunque haya elegido la solución mencionada con anterioridad, le recomendamos que siga leyendo, especialmente en lo que respecta a las variables de entorno. Lo necesitará más adelante.
También puede ejecutar Composer desde la línea de comandos, como vamos a hacer a continuación.
Las instrucciones de la línea de comandos comienzan todas con php. De hecho, Composer no es más que un programa PHP. Para ejecutar una instrucción PHP desde la línea de comandos, su sistema debe saber dónde se encuentra el ejecutable de PHP.
Sería tedioso indicar la ruta del ejecutable cada vez que se quiere ejecutar PHP. Afortunadamente, podemos definir la ruta del ejecutable gracias a las variables de entorno.
Variables de entorno
Estas variables definen las configuraciones predeterminadas de cada programa que se puede usar desde la línea de comandos.
¿Dónde encontrar las variables de entorno?
En el caso de Windows, hay varias formas de encontrarlas. La más típica es la siguiente:
En el menú de Inicio de Windows, haga clic en Panel de control (en Windows 10, escriba "panel de control" en la barra de búsqueda).
Luego, haga clic en Sistema y seguridad, y después en Sistema. Finalmente, a la izquierda de la pantalla, encontrará la opción Configuración avanzada del sistema.
![images/07RIT03.png](https://www.eni-training.com/download/3344c6bd-83e8-47fb-bff9-51328b4bd484/images/07RIT03.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Haga clic en el botón de Variables de entorno:
![images/07RIT04.png](https://www.eni-training.com/download/3344c6bd-83e8-47fb-bff9-51328b4bd484/images/07RIT04.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
En la ventana Variables del sistema, desplácese hacia abajo hasta la variable Path y haga doble clic en ella. Podrá agregar a todos los caminos ya presentes la ruta hacia su ejecutable de PHP.
Pero ¿dónde se encuentra el ejecutable de PHP?
Anteriormente, instalamos WAMP (o XAMPP o MAMP), que nos ofrece un servidor PHP. Es en las carpetas de WAMP donde se encuentra el ejecutable.
En la carpeta c:/wamp64/bin/php se encuentran las carpetas de cada versión disponible del servidor PHP.
![images/07RIT05.png](https://www.eni-training.com/download/3344c6bd-83e8-47fb-bff9-51328b4bd484/images/07RIT05.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Haga clic en la última versión disponible de PHP (en este caso, php 8.2).
Seleccione la dirección en la barra de direcciones: C:\wamp64\bin\php\php8.2.0.
Regrese al panel: modifique la variable...
Instalación de Composer
Ahora que PHP está disponible, podemos instalar Composer.
Volvamos a la página de Composer: haga clic en el botón Download. Verá los comandos siguientes:
php -r "copy('https://getcomposer.org/installer',
'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') ===
'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d1
7af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else
{ echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Solo nos servirán estas líneas:
php -r "copy('https://getcomposer.org/installer',
'composer-setup.php');"
php composer-setup.php
Desde el terminal, seleccione una carpeta (de preferencia c:/wamp64/www para agruparlo todo) con el comando:
cd c:/wamp64/www
y a continuación ejecute:
php -r "copy('https://getcomposer.org/installer',
'composer-setup.php');"
php composer-setup.php
Windows podría darnos un error:
could not open composer-setup
Esto es debido a que hay que ejecutar el comando como administrador. Si le ocurre esto...
Uso de Composer
En Symfony, utilizaremos Composer para cargar bibliotecas. En cualquier caso, haremos una breve introducción a Composer.
Composer funciona con un archivo llamado composer.json.
Este archivo está en formato JSON y contendrá la lista de todas las bibliotecas que ha cargado, con sus números de versión (lo que le permitirá realizar actualizaciones).
Puede crear un archivo composer.json desde cero con el siguiente comando (en la carpeta c:/wamp64/www):
composer init
Si solo ha instalado el ejecutable de composer y no el archivo PHP, deberá hacer:
php composer.phar init
Un sistema de preguntas/respuestas le permite completar el contenido del archivo composer.json.
![images/07RIT08.png](https://www.eni-training.com/download/3344c6bd-83e8-47fb-bff9-51328b4bd484/images/07RIT08.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
No es obligatorio responder a todas las preguntas (pulse [Intro] para aceptar).
Solo el nombre del autor es obligatorio: Yves Rocamora <yrocamora@example.com>.
A las preguntas:
Would you like to define your dependencies (require) interactively [yes]?
no
Would you like to define your dev dependencies (require-dev)
interactively[yes]? no
Debemos responder no.
Una vez completado, encontrará un archivo composer.json en la carpeta c:/wamp64/www.
Puede abrirlo con VSCode (desde la carpeta wamp/www y no SymfApp: haga clic en File - Open Folder):
![images/07RIT09.png](https://www.eni-training.com/download/3344c6bd-83e8-47fb-bff9-51328b4bd484/images/07RIT09.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Las bibliotecas disponibles a través de Composer se pueden encontrar en el sitio de Composer, haciendo clic en la pestaña Browse Package.
Esto lo lleva...
El administrador de dependencias Scoop
Es un administrador de paquetes bastante eficiente que acaba de aparecer. Advertencia: este administrador solo funciona en Windows.
Echemos un vistazo al sitio: https://scoop.sh
Abra un terminal de comandos (como se mencionó anteriormente) o use el terminal de Visual Studio Code y ejecute sucesivamente los siguientes comandos:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
Eso es todo. Puede instalar los paquetes que desee. Para buscar un paquete, puede usar el comando Scoop search seguido de una palabra clave. Por ejemplo, para instalar el paquete MarkDown mencionado anteriormente, puede escribir:
scoop search MarkDown
Scoop encuentra el paquete markdown-monster, pero le informa de que es un paquete extra. Para instalarlo, simplemente escriba:
scoop install markdown-monster
Pero, como es un paquete extra (externo), primero debe activarlo. Solo necesitará realizar esta operación una vez. El principio es el mismo para cada bucket.
Para activar la fuente «extras» que le permite instalar paquetes provenientes de Git, ejecute estos dos comandos:
scoop install git
scoop bucket add extras
Ahora, podemos instalar la biblioteca MarkDown:
scoop install markdown-monster
La aplicación Markdown Monster está instalada en su PC (no se trata de una aplicación PHP). Busque la aplicación en la barra de búsqueda de Windows; la encontrará...