Composer (y III). Uso habitual de composer.

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Ahora que tenemos las bases del uso de composer vamos a conocer, en este artículo, la forma más práctica y eficiente de implementar el uso de esta herramienta en nuestros proyectos desde el comienzo. En realidad, podemos implementarla en cualquier momento del desarrollo, pero lo suyo es usarla desde el inicio, para que no tengamos que andar luego con parches y remiendos, lo que es contrario a las buenas prácticas de programación, y una pérdida de tiempo.

Veremos cómo podemos adaptar, con mucha facilidad, el archivo composer.json del proyecto, si necesitamos nuevas dependencias. Después de todo, todas las dependencias que incluyamos deben aparecer en este archivo, como ya sabemos.

CREANDO EL PROYECTO

Cuando iniciamos un proyecto nuevo, creamos un subdirectorio vacío dentro del directorio que usamos como servidor, tanto si es un servidor local cómo un servidor en otro equipo de nuestra red, o uno remoto. En el directorio que crearemos se alojará nuestro proyecto. Supongamos que usamos xampp para tener nuestro localhost y el proyecto se va a llamar pruebas_composer. El directorio donde lo alojaremos será C:/xampp/htdocs/pruebas_composer. Nada más crear el directorio, este se encuentra vacío, naturalmente. Veamos como crear el archivo composer.json básico.

Lo primero es abrir la consola de mandatos y situarnos en el directorio de nuestro interés, tecleando, en este caso, lo siguiente:

cd "C:/xampp/htdocs/pruebas_composer"

A continuación inicializamos composer, así:

composer init

El programa composer empezará a hacernos una serie de preguntas, a las que iremos aceptando la respuesta por defecto, pulsando, en cada una, la tecla INTRO. La única excepción será cuando nos pregunte por el autor del proyecto. Aquí si responderemos, para que se identifique correctamente al autor. Esto es vital, entre otras cosas, para el SEO. La respuesta a esta pregunta debe ser el nombre del autor y, entre < y >, su correo electrónico. Una respuesta correcta sería, por ejemplo, la siguiente:

El desván de José <admin@eldesvandejose.com>

El resto de las preguntas las responderemos igual que las anteriores, aceptando la respuesta por defecto. Al terminar (sólo son unas pocas preguntas), se habrá creado, en la carpeta de nuestro proyecto, un archivo composer.json básico con un contenido similar al siguiente:

Cómo puedes ver, este archivo aún no nos sirve para instalar dependencias, ya que el epígrafe require está vacío, así que no instalará nada. Podemos modificar el contenido de este epígrafe (y, por lo tanto, las librerías que se instalarán) con mucha facilidad.

ESTABLECER LAS LIBRERÍAS

El epígrafe require es dónde se le dice a composer que librerías queremos instalar en nuestro proyecto. El archivo composer .json no debe ser editado con un editor externo, sino con la propia funcionalidad que composer implementa al respecto. Para ello tecleamos:

composer require

En seguida, componer nos responde con una solicitud concreta:

Search for a package:

Aquí tenemos que decirle qué librería es la que queremos añadir a require. En este ejemplo vamos a implementar, en nuestro proyecto, la librería para envío de correos electrónicos PHPMailer, así que le respondemos a composer phpmailer y pulsamos la tecla INTRO. Composer nos brindará una lista con todos los paquetes que encuentre en Internet que implementen dicha librería. Normalmente, el primero suele ser la propia librería, tal como la ofrece el fabricante. Las posibilidades de la lista aparecen precedidas de un número entre corchetes, como ves a continuación:

Se nos pide que indiquemos el número de la opción que nos interesa. En este caso, vamos a elegir la primera, cuyo número es [0]. Por lo tanto, a la cuestión Enter package # to add, or the complete package name if it is not listed: responderemos pulsando el 0 (sin los corchetes) y la tecla INTRO.

Composer nos pregunta ahora por la versión de la librería que queremos instalar, así:

Enter the version constraint to require (or leave blank to use the latest version):

Si no sabemos cual es el número de versión que deseamos, o queremos, simplemente, tener la más actual, pulsamos, directamente, la tecla INTRO.

Tras unos segundos, composer nos informará del resultado, con un mensaje similar al siguiente:

Using version ^5.2 for phpmailer/phpmailer

A continuación se nos pregunta de nuevo por el paquete que deseamos instalar, por si necesitamos alguna otra librería, lo que efectuaría el proceso de nuevo. Cómo, por ahora, no vamos a instalar nada más, simplemente pulsamos INTRO.

En ese momento se inicia un proceso que dura unos segundos y en el que composer modifica el epígrafe require de composer.json, instala lo que le hemos pedido en el subdirectorio vendor dentro del directorio del proyecto, y crea el autoloader. Con eso lo tenemos hecho.

Si, más adelante, necesitamos agregar otra librería, sólo deberemos usar nuevamente el comando composer require que hemos visto en este artículo.

     

2 comentarios:

  1. Francisco Cruz

    Solo paso por aqui para agredecerte tu explicacion de uso de composer. Excelente aportación. Saludos

Deja un comentario

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