Introducción a Composer

Composer

Aquí en Rimorsoft Online enseñamos Laravel y PHP... Y para hacer las cosas bien como instituto, y seguir buenas prácticas debo darte a conocer de mejor manera a Composer.


Composer resuelve el problema de tener que ir a buscar a Google las librerías para nuestros proyectos. En el pasado escribiamos en Google algo así "cómo generar PDF en PHP", nos aparecía el listado estándar y comenzabamos a descargar, descomprimir y probar hasta que alguno funcione. Ahora tenemos a Packagist que es el repositorio principal de Composer.

Recuerda: En Composer escribimos los comandos y él busca en Packagist para su respectiva descarga, puedes ir y probar, ve a https://packagist.org/ escribe PDF y verás la lista de paquetes que puedes descargar y usar, además verás los comandos que debes usar y la documentación necesaria.

Composer es un increíble manejador de paquetes, dependencias... Es realmente increible, este sistema descarga el paquete y si este tiene dependencia entonces también las descarga. Ejemplo: Si vamos a instalar el paquete dompdf/dompdf usamos el comando composer require dompdf/dompdfy ya.. Sin embargo, composer detecta que tiene dependencias y las instala sin mayor trauma, problema y horas extra de trabajo.

Para instalar composer debes ir a la página oficial https://getcomposer.org/ y seguir sus indicaciones dependiendo del sistema operativo que estés usando.

Ten en cuenta que composer es una herramienta para la instalación y administración de dependencias en PHP (nada de Java, Python, C#, JavaScript, etc). Esta herramienta funciona porque hay un archivo en tu proyecto llamado composer.json donde declaras las librerias o paquetes de las que depende tu proyecto y las administrará es decir, las instalará o actualizará con éxito.

Gestión de dependencia

Cuando instalas o actualizas, Composer usa por lo general un directorio llamado vendor dentro de tu proyecto (revisa un proyecto de laravel para que observes dicha carpeta). Por defecto no instala nada globalmente, todo lo instala en tu proyecto web. Composer no es una idea nueva, está fuertemente inspirada en npm de https://nodejs.org/es/ y otras tecnologías parecidas.

De hecho me has visto usar npm y composer en varios videos del canal :)

Digamos que (para cerrar la idea) tenemos un proyecto que depende de varias librerias o paquetes y, varias de esas librerias dependen de otras. Composer detecta y descubre lo que necesitamos y los instala (lo que significa que los descarga en tu proyecto y los guarda sin mayor problema en la famosa carpeta vendor).

Ejemplo del archivo composer.json

{
    "name": "proveedor/paquete",
    "type": "library",
    "description": "Ejemplo de una descripción",
    "license": "MIT",
    "authors": [
        {
            "name": "Italo Morales F",
            "email": "i@italomoralesf"
        }
    ],
    "require": {
        "barryvdh/laravel-dompdf": "0.8.*",
    }
}

En el archivo de ejemplo vemos que nuestro proyecto requiere de la instalación del paquete llamado barryvdh/laravel-dompdf, que se instalará una vez ejecutemos el comando composer install.

Sigue conectado, veremos mas post sobre Composer

Adquiere en preventa y aprovecha un gran descuento TDD en Laravel

Comparte en

Creado por: Venezuela Italo Morales

Profesor de #Laravel y #PHP en Rimorsoft Online

Más información


Spatie/Laravel Permission ¿Cómo agregar campos en la tabla "roles"?

Hola, mi consulta es la siguiente:

Relacioné la tabla "roles" con mi tabla** "empresa**", es decir, en la tabla "roles", tengo el campo "id_empresa", en la vista, están los campos necesarios y el select de la empresa pero al querer guardar los datos, me arroja el siguiente error: ** "The given role or permission should use guard web instead of Empresas. "** No ...

SOFTWARE PARA CONSULTORIOS MEDICOS

Hola Amigos. soy nuevo en el grupo.. me gustaria saber si alguien tiene o tuvo algun proyecto basado en laravel, para consultorios medicos? ...

sincronización de componentes hermanos

un gran saludo a la comunidad rimorsorf... espero de su valiosa ayuda para mi problema que es el siguiente:

tengo dos componentes en el mismo nivel, el primero crea una tabla con una lista de procesos por tramitar y el segundo componente lista en una tabla los procesos que se han asignado para tramitar; cuando en la primera tabla se asigna el proceso este debe desaparecer de...

plantilla blade y vuejs2

buenas noches comunidad, por casualidad alguien sabrá si se puede integrar la plantilla de laravel blade en vuejs2 component??, gracias dee antemano...