Iniciando un proyecto con Composer

↑ Me gusta (0)

En dos post anteriores estuve vendiendote a Composer, hablé de sus ventajas y beneficios... En este post te digo que usarlo es obligatorio, si no lo has instalado ve a esta página http://getcomposer.org/ e instalalo. Es una gran herramienta y todo gira entorno a un archivo llamado composer.json y que normalmente lo encontramos en la raíz del proyecto. En este archivo tenemos toda la información ordenada para que se instalen todos los paquetes que necesitamos usar. En otras palabras, este archivo informa a Composer sobre las necesidades de nuestro sistema y hace su magía.

Post anteriores:

Son artículos de iniciación, conceptos sencillos y funcionales para su completa comprensión.

¿Cómo comenzamos un proyecto?

Buena pregunta, iniciamos creando nuestro archivo composer.json pero no te preocupes, no tenemos que memorizar su estructura porque a través de comandos sencillos podemos crearlo. Con el tiempo esto quedará grabado en tu memoria.

Si estamos trabajando con Laravel, Symfony u otro Framework moderno notarás que en la raiz del proyecto ya existe este archivo composer.json. Ummm siendo así hemos terminado, si tu proyecto ya está usando Composer para que seguimos con este post :) ...Es broma, quiero que aprendas que todo proyecto profesional usa Composer así que aquí aprenderemos a crear el famoso archivo composer.json.

Creando el archivo composer.json

Iniciamos, nombre del paquete o proyecto

Debemos ir el terminal, luego a la raiz del proyecto y ejecutamos el comando composer init, este comando nos hará algunas pocas preguntas y usará nuestras respuestas para construir el archivo composer.json.

Este asistente comienza preguntando el nombre del paquete. Dirá Package name (<vendor>/<name>) [italomoralesf/slug]: donde italomoralesf es el fabricante y slug es el nombre del proyecto. Como puedes observar es un nombre de paquete típico, usa un nombre de proveedor y un nombre propio del paquete (/). Todo debe escribirse en minuscula y usar un guión para los espacios.

Lo importante es que si pulsamos Enter pasamos a la siguiente pregunta.

Descripción del proyecto o paquete

Te aparecerá Description []: para precisamente colocar de que trata nuestro proyecto, toma en cuenta que es opcional. La recomendación es que la llenes y mantengas máximo dos líneas de descripción. Pulsamos Enter pasamos a la siguiente pregunta.

Autor

En mi maquina sale por defecto Author [Italo Morales F <[email protected]>, n to skip]: al presionar Enter mantenemos este dato, sin embargo podríamos cambiarlo. Toma en cuenta que las opciones predeterminadas (como en este caso mis datos) Composer las está tomando de la configuración de Git. Si deseas puedes usar otro dato de autor y correo electrónico diferente, también puedes presionar n y saltar este paso ya que el autor es opcional.

Estabilidad del paquete

Minimum Stability []: Aquí es donde debemos colocar la estabilidad mínima para nuestras dependencias. Podemos dejar vacio o escoger stable, RC, beta, alpha o dev... En otro post amplio este concepto por ahora puedes escoger alpha si es nuevo o beta si ya está avanzado y probandose en producción.

Tipo de paquete

Composer pregunta Package Type (e.g. library, project, metapackage, composer-plugin) []: y la respuesta depende de la intención... Si estás iniciando un sitio o sistema web entonces project sería la opción correcta, si deseamos crear un componente podríamos escoger library. Esto es lo que se explicó en el post anterior como paquete de aplicación y paquete de dependencia.

Licencia del paquete

License []: ...y como puedes imaginar este tema es muy extenso, te puedo adelantar que muchos Framework incluyendo Laravel son código abierto y usan la licencia MIT. Probablemente mas adelante nos metamos en el mundo de las licencias, en este punto solo presionaremos Enter para continuar.

Dependencias

Composer dice Define your dependencies. Would you like to define your dependencies (require) interactively [yes]? simplemente pregunta ¿Te gustaría definir dependencias (require) de forma interactiva [sí]?... Y la idea sería buscar las dependencias necesarias pero no te preocupes, esto se puede editar mas adelante y así tener con éxito nuestro proyecto con todo lo necesario. Vamos simple, omitamos este paso.. Respondamos no y avancemos.

Dependencias de desarrollo

Es lo mismo que el paso anterior, solo que son dependencias para el desarrollo, composer pregunta Would you like to define your dev dependencies (require-dev) interactively [yes]?, en español sería ¿Te gustaría definir tus dependencias de desarrollo (require-dev) interactivamente [sí]?... Donde un ejemplo de dependencia de desarrollo sería PHPUnit, de igual forma que en el paso anterior, en este ejemplo omitiremos esta sección repondiendo no

Confirmación

Do you confirm generation [yes]? esto genera nuestro archivo, y aquí lo tenemos:

{
    "name": "italomoralesf/slug",
    "description": "Proyecto de prueba para explicar Composer",
    "type": "project",
    "authors": [
        {
            "name": "Italo Morales F",
            "email": "[email protected]"
        }
    ],
    "require": {}
}

Es un archivo con formato json, y si no comprendes la sintaxis no te preocupes, aquí en Rimorsoft dedicaremos tiempo en json.

Vinculación de Composer con nuestro sistema PHP

Recuerda que la ventaja es la carga automática de nuestras clases y librerías, por ello veamos cómo vincular a nuestro proyecto el archivo autoload.php.

Paso 1

Instalar nuestras dependencias y básicamente dar de alta nuestra configuración del archivo composer.json en el proyecto, vamos a la raiz de proyecto (justo donde está el archivo composer.json) y ejecutamos composer install. Esto es para descargar e instalar nuestras dependencias y crea automáticamente el archivo composer.lock y la carpeta vendor.

  • El archivo composer.lock contiene información sobre las versiones exactas de las dependencias que tenemos instaladas en nuestro proyecto.
  • La carpeta vendor es donde Composer guarda todos los paquetes descargados y que estamos usando.

Paso 2

vendor\autoload.php es nuestro archivo para cargas automáticas, este archivo es todo lo que necesitamos para hacer que nuestra aplicación tenga conocimiento de Composer, y así usar con éxito todas sus funciones.

Archivo de ejemplo config.php

<?php

    require_once 'vendor/autoload.php';
    /*
     * Así de sencillo, incluyendo este archivo podemos 
     * usar clases y funciones cargadas 
     * automáticamente por Composer.
     */

Una vez incluido nuestro autoload.php en nuestra aplicación estamos listos para comenzar a usar Composer. Con esto terminamos, por favor deja tu comentario y apunte de lo que has aprendido Toma notas

Gracias por leer en rimorsoft.com