====== 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