Composer
en Drupal 8
Luis Montealegre
@MontealegreLuis
Comunidad PHP Puebla
Nos puedes encontrar en:
http://www.comunidadphppuebla.com
https://twitter.com/ComPHPPuebla
https://www.facebook.com/ComPeHPPuebla
https://plus.google.com/u/0/b/118051492553523455975/118051492553523455975
https://github.com/ComPHPPuebla
https://speakerdeck.com/comphppuebla
https://packagist.org/users/ComPHPPuebla
¿Qué es Composer?
Es un manejador de dependencias por proyecto que te permite definir una lista de dependencias y sus versiones, para cada aplicación
También es una herramienta que permite compartir tus librerías y publicarlas para que otros puedan usarlas a través de packagist.org
Instalando Composer
Localmente:
curl -s http://getcomposer.org/installer | php
Globalmente:
curl -s http://getcomposer.org/installer | php -- --install-dir=bin
ln -s /usr/bin/composer.phar /usr/bin/composer
Agregando dependencias
La forma simple
cd /var/www/drupalpuebla
composer init
composer search faker
composer require fzaninotto/faker:v1.2.0
composer show --installed
composer.json
{ "name": "comphppuebla/drupalpuebla", "description": "Demo de Composer para la comunidad Drupal en Puebla", "license": "MIT", "authors": [ { "name": "Luis Montealegre", "email": "montealegreluis@gmail.com" } ], "require": { "fzaninotto/faker": "v1.2.0" } }
Autoloading
Además de descargar las librerías Composer genera un archivo que es capaz de hacer el autoloading de cualquier librería que instale
Lo único que necesitas para empezar a usar cualquier librería que tengas instalada es agregar la siguiente línea
require 'vendor/autoload.php';
Demo
require
require contiene los datos de los paquetes que usa tu proyecto y consta de un objeto que mapea nombres de paquetes y versiones
Nombres de paquetes
nombre-vendor/nombre-project
Versiones1.0.2 # Exacta
>=1.0,<2.0 # Rangos
1.0.* # Wildcard
~1.2 # La siguiente versión significativa
composer.lock
Después de instalar las dependencias composer crea un archivo con las versiones exactas que instalaste en el archivo
composer.lock
Agrega a tu CVS (Git por ejemplo) los archivos composer.json y composer.lock
composer install #Usará composer.lock
Packagist
Packagist es el repositorio principal de Composer
Satis
composer create-project composer/satis --stability=dev
{
"name": "Comunidad PHP Puebla Composer Packages",
"homepage": "http://composer.comunidadphppuebla.com",
"repositories": [
{
"type": "package",
"package": {
"name": "drupal/drupal",
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"version": "8.0.0",
"dist": {
"url": "https://github.com/drupal/drupal/archive/8.0-alpha3.zip",
"type": "zip"
}
}
}
],
"require-all": true
}
php bin/satis build config.json web/
Demo
Drupal 8 + Composer
composer create-project --repository-url=http://composer.comunidadphppuebla.com drupal/drupal drupalpuebla 8.0.0
Nota: Aunque dice 8.0.0 estoy sando la versión Alpha-3 para demostrar el uso de Satis
Instalando Drupal 8
Creamos la base de datos
DROP DATABASE IF EXISTS drupal_puebla;
CREATE DATABASE drupal_puebla
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
GRANT ALL PRIVILEGES on drupal_puebla.* TO drupal_user@localhost IDENTIFIED BY 'Drup4l 1s_4ws0m3!'; Usamos la configuración por default cp sites/default/default.settings.php sites/default/settings.php Usamos el instalador de Drupalhttp://localhost/drupalpuebla/
Instalando Drupal 8

Demo
Instalaciones globales
Agregar $COMPOSER_HOME a la variable $PATH
export PATH=$PATH:~/.composer/vendor/bin
Drush
composer global require drush/drush:dev-master # (para Drupal 8)
Para actualizar
composer global update
Sitios de interés
¿Preguntas?
¡Gracias!
Composer en Drupal 8
By Luis Montealegre
Composer en Drupal 8
- 1,270
