====== Composer ======
Gestor de dependencias para PHP.
* [[https://getcomposer.org|Web oficial]]
===== Instalación =====
Tras la instalación, el ejecutable se ubica en:
* Linux: ''$HOME/.config/composer/vendor/bin'' o ''$HOME/.composer/vendor/bin''
* Windows: ''%USERPROFILE%\AppData\Roaming\Composer\vendor\bin''
===== Uso =====
==== composer.json ====
El fichero ''composer.json'' se usa para configurar un proyecto. En él se definen las dependencias del proyecto y alguna información extra sobre el mismo.
Para generar un fichero ''composer.json'' básico:
composer init
{
"name": "tempwin/foo"
"description": "Descripción de foo",
"type": "project",
"license": "MIT",
"authors": [
{
"name": "TempWin",
"email": "tempwin@gmail.com"
}
],
"minimum-stability": "dev",
"require": {
"phpmailer/phpmailer": "5.2.2"
}
}
A la hora de indicar la versión de las dependencias, se sigue el [[https://getcomposer.org/doc/articles/versions.md|siguiente esquema]]:
* ''1.2.3'': versión exacta
* ''>=1.0'': rango
* ''>=1.0 <2.0''
* ''>=1.0 <1.1 || >=1.2''
* ''1.0.*'': comodín.
* ''^1.2.3'': es lo mismo que ''>=1.2.3 <2.0.0''
Composer generará además un fichero ''vendor/autoload.php'' para que lo incluyamos en nuestro proyecto y empezar a usar ya las bibliotecas despreocupándonos de hacerlo todo nosotros. Bastará con incluir la siguiente línea en nuestro script:
require 'vendor/autoload.php';
Ejemplo de fichero PHP:
//Import PHPMailer classes into the global namespace
//These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
//Load Composer's autoloader
require 'vendor/autoload.php';
//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);
composer create-project laravel/laravel:^8.0 example-app