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
Composer windows

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