Portada » Blog » Que es Composer y Cómo instalarlo

Que es Composer y Cómo instalarlo

Si resumimos mucho y nos vamos a la definición más burda, podemos resumir que Composer es un gestor de paquetes para PHP. Su uso se ha vuelto una necesidad para cualquier programador de PHP, ya que te permite administrar las librerías necesarias para tu proyecto de una manera fácil , eficiente y evitar problemas con dependencias.

Este tipo de herramientas existen en más lenguajes y nos permiten agilizar nuestro trabajo y generar proyectos más complejos en menos tiempo. Como podrás ver en nuestro proyecto de symfony

Más adelante podrás ver otros gestores como NPM, bower, Bundler , RubyGems, Jam, etc.

Requisitos para la instalación

Los requisitos son básicos, solo necesitarás tener acceso a una consola y un PHP 5.3.2 o superior.

Cómo instalar

En este punto variará según el sistema operativo que utilices, Linux o Windows.

Como instalar en Linux

php -r "copy('https://getcomposer.org/download/2.0.10/composer.phar', 'composer-setup.php');"
php -r "if (hash_file('sha256', 'composer-setup.php') === '92cb8b75268b23d1275e6d72dd398b29244505bea6d1f247ba126fd45a990645') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Si tiodo ha ido bien deberemos ver un mensaje como este.Installer verified

ya solo nos faltara dejar el composer accesible desde todos lados con este comando.sudo php composer-setup.php –install-dir=/usr/local/bin –filename=composer

Ya simplemente nos faltara ejecutar composer desde la línea de comandos.

pedro@pedro-als:$composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.0.11 2021-02-24 14:57:23 
Usage:
 command [options] [arguments]

Cómo instalar en Windows

La instalación desde Windows es muy fácil, deberás descargar el instalador y bastaró seguir los pasos del instalador en el que deberás elegir una versión de PHP, entre todas las que tengas en tu equipo.C:\Users\username>composer

Cómo usar en un hosting compartido

A diferencia de un servidor con acceso total o en tu propio equipo, en un servidor compartido, la instalación de aplicaciones o modificación de ciertas variables de entorno, lo tendrás limitado.

En este caso, como mínimo necesitaremos acceso por SSH a nuestro hosting.

En primer lugar, deberemos ejecutar la siguiente línea de comando.curl -sS https://getcomposer.org/installer | /usr/bin/php7.3-cli

Después de ejecutar este comando aparecerá un fichero llamado composer.phar. Y desde este momento podremos ejecutarlo directamente.

Al tratarse de un fichero que debe ser ejecutado con PHP, deberemos usar siempre la ruta de una de las versiones de PHP que tengamos instalada en nuestro hosting

pedro@pedro-als:$ /usr/bin/php7.3-cli composer.phar
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.0.11 2021-02-24 14:57:23

Usage:
  command [options] [arguments]

Cómo actualizar Composer

Al tratarse de una aplicación que nos permite actualizar y gestionar nuestras librerías con tanta facilidad, estaría feo que la actualización fuese difícil o tediosa.

Para actualizar solo debemos ejecutar el siguiente comando.

pedro@pedro-als:$ composer selfupdate

Cómo usar Composer

En esta sección os voy a dejar una serie de comandos, conforme avancemos en el curso, iremos viendo varios ejemplos.

Funciona con varios ficheros que se van generando durante su uso.

composer.json” es el fichero principal. En este fichero esta almacenada la información de las librerías necesarias para nuestro proyecto. Además en este fichero se encontrara la información del proyecto, así como de el autor o licencia.

Parámetro init

Este comando es el encargado de inicializar el proyecto. Para ello, deberemos aportar algunos datos.

Estos datos los iremos viendo conforme sea necesario. Pero aquí os dejo un pequeño ejemplo.

$composer init


  Welcome to the Composer config generator



This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [cr0n0/www]: ktinformatica/demo
Description []: tutorial ktinformatica
Author [ktinformatica <desarrollo@ktinformatica.com>, n to skip]: ktinformatica  <desarrollo@ktinformatica.com>
Minimum Stability []: stable
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []: Apache-2.0

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? yes
Search for a package: facebook

Found 15 packages matching facebook

   [0] php-webdriver/webdriver
   [1] facebook/graph-sdk
   [2] hybridauth/hybridauth
   [3] hwi/oauth-bundle
   [4] facebook/php-business-sdk
   [5] facebook/php-sdk-v4 Abandoned. Use facebook/graph-sdk instead.
   [6] botman/botman
   [7] sammyk/laravel-facebook-sdk
   [8] league/oauth2-facebook
   [9] opauth/opauth
  [10] facebook/xhp-lib
  [11] facebook/php-ads-sdk
  [12] facebook/php-sdk Abandoned. Use facebook/graph-sdk instead.
  [13] facebook/facebook-instant-articles-sdk-php
  [14] botman/driver-facebook

Enter package # to add, or the complete package name if it is not listed: 1
Enter the version constraint to require (or leave blank to use the latest version):
Using version ^5.7 for facebook/graph-sdk
Search for a package:
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

{
    "name": "ktinformatica/demo",
    "description": "tutorial ktinformatica",
    "type": "project",
    "require": {
        "facebook/graph-sdk": "^5.7"
    },
    "license": "Apache-2.0",
    "authors": [
        {
            "name": "ktinformatica ",
            "email": "desarrollo@ktinformatica.com"
        }
    ],
    "minimum-stability": "stable"
}

Do you confirm generation [yes]? yes
Would you like to install dependencies now [yes]?
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Package moontoast/math is abandoned, you should avoid using it. Use brick/math instead.
Generating autoload files

Parámetro install

Este comando es utilizado para instalar todas las dependencias del proyecto que tengamos indicadas en nuestro composer.json. Por defecto, la instalación de estas dependencias suele ser en la carpeta vendor, pero si se precisara podría ser configurado con otro destino.

Parámetro update

Con este parametro actualizaremos todas las librerías de nuestro proyecto o si se lo indicamos podremos actualizar solo una o un conjunto de ellas.

Parámetro require vendor/package

Con este comando podrás añadir todas las librerías que precises. Si al añadir una librería esta tiene dependencias, el mismo se encargará de descargar el resto de librerías necesarias.

Parámetro remove vendor/package

Este comando, te permitirá la eliminación de una librería, que ya no sea necesaria en tu proyecto.

Parámetro self-update

Con este comando podrás actualizar tu versión de composer para obtener una versión más reciente