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