Introducción a composer

49
Monday, September 16, 13

Transcript of Introducción a composer

Page 1: Introducción a composer

Monday, September 16, 13

Page 2: Introducción a composer

¿Que es?

Monday, September 16, 13

Page 3: Introducción a composer

• Gestor de dependencias para PHP

¿Que es?

Monday, September 16, 13

Page 4: Introducción a composer

• Gestor de dependencias para PHP

• Basado NPM y Bundler

¿Que es?

Monday, September 16, 13

Page 5: Introducción a composer

• Gestor de dependencias para PHP

• Basado NPM y Bundler

• Considerada una versión actualizada y mejorada de PEAR

¿Que es?

Monday, September 16, 13

Page 6: Introducción a composer

• Gestor de dependencias para PHP

• Basado NPM y Bundler

• Considerada una versión actualizada y mejorada de PEAR

• 100% PHP

¿Que es?

Monday, September 16, 13

Page 7: Introducción a composer

• Gestor de dependencias para PHP

• Basado NPM y Bundler

• Considerada una versión actualizada y mejorada de PEAR

• 100% PHP

• Utiliza componentes de Symfony

¿Que es?

Monday, September 16, 13

Page 8: Introducción a composer

• Gestor de dependencias para PHP

• Basado NPM y Bundler

• Considerada una versión actualizada y mejorada de PEAR

• 100% PHP

• Utiliza componentes de Symfony

• Herramienta de consola

¿Que es?

Monday, September 16, 13

Page 9: Introducción a composer

No es un gestor de paquetes

Monday, September 16, 13

Page 10: Introducción a composer

1. Nuestro proyecto depende de otras librerías

2. Esas librerías dependen de otras librerías

3. Y versiones específicas

4. Resolución de que librerías y versiones se deben instalar para que funcione nuestro proyecto

¿Que nos soluciona?

Monday, September 16, 13

Page 11: Introducción a composer

¿Cómo se instala?

Por proyecto

$ curl -sS https://getcomposer.org/installer | php

Global

$ sudo mv composer.phar /usr/local/bin/composer

Monday, September 16, 13

Page 12: Introducción a composer

¿Cómo se instala?

Instalador

https://getcomposer.org/Composer-Setup.exe

Manual

C:\Users\username>cd C:\binC:\bin>php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

Monday, September 16, 13

Page 13: Introducción a composer

composer.json{ "name": "ismael/mi-proyecto", "description": "Una simple descripción", "require": { "symfony/console": "v2.3.4" }, "require-dev": { "phpunit/phpunit": "~3.7" }, "license": "MIT", "authors": [ { "name": "Ismael Ambrosi", "email": "[email protected]" } ], "minimum-stability": "stable"}

Monday, September 16, 13

Page 14: Introducción a composer

composer.lock

Monday, September 16, 13

Page 15: Introducción a composer

composer.lock

• Bloquea el proyecto a versiones específicas

Monday, September 16, 13

Page 16: Introducción a composer

composer.lock

• Bloquea el proyecto a versiones específicas

• Creado al instalar dependencias(si no existe)

Monday, September 16, 13

Page 17: Introducción a composer

composer.lock

• Bloquea el proyecto a versiones específicas

• Creado al instalar dependencias(si no existe)

• Modificado al actualizar dependencias

Monday, September 16, 13

Page 18: Introducción a composer

composer.lock

• Bloquea el proyecto a versiones específicas

• Creado al instalar dependencias(si no existe)

• Modificado al actualizar dependencias

• Debe ser incluído en el control de versiones

Monday, September 16, 13

Page 19: Introducción a composer

composer.lock

• Bloquea el proyecto a versiones específicas

• Creado al instalar dependencias(si no existe)

• Modificado al actualizar dependencias

• Debe ser incluído en el control de versiones

•No debe modificarse!

Monday, September 16, 13

Page 20: Introducción a composer

¿Cómo lo uso?

Monday, September 16, 13

Page 21: Introducción a composer

¿Cómo lo uso?Instalación

Monday, September 16, 13

Page 22: Introducción a composer

¿Cómo lo uso?

Monday, September 16, 13

Page 23: Introducción a composer

¿Cómo lo uso?Actualización

Monday, September 16, 13

Page 24: Introducción a composer

¿Cómo lo uso?Actualización de una dependencia

Monday, September 16, 13

Page 25: Introducción a composer

¿Cómo lo uso?Otras functionalidades

• composer init

• composer require

• composer create-project

• composer validate

• composer self-update

Monday, September 16, 13

Page 26: Introducción a composer

Versiones

Monday, September 16, 13

Page 27: Introducción a composer

Versiones1.0.5 : Versión exacta

Monday, September 16, 13

Page 28: Introducción a composer

Versiones1.0.5 : Versión exacta

1.0.* : Significa cualquier versión dentro de la rama 1.0

Monday, September 16, 13

Page 29: Introducción a composer

Versiones1.0.5 : Versión exacta

1.0.* : Significa cualquier versión dentro de la rama 1.0

>=1.0,<2.2 : Cualquier versión entro 1.0 y 2.1.999999

Monday, September 16, 13

Page 30: Introducción a composer

Versiones1.0.5 : Versión exacta

1.0.* : Significa cualquier versión dentro de la rama 1.0

>=1.0,<2.2 : Cualquier versión entro 1.0 y 2.1.999999

~1.1 : Equivale a >=1.1,<2.0

Monday, September 16, 13

Page 31: Introducción a composer

Versiones1.0.5 : Versión exacta

1.0.* : Significa cualquier versión dentro de la rama 1.0

>=1.0,<2.2 : Cualquier versión entro 1.0 y 2.1.999999

~1.1 : Equivale a >=1.1,<2.0

~1.2 : Equivale a >=1.2,<2.0

Monday, September 16, 13

Page 32: Introducción a composer

Versiones1.0.5 : Versión exacta

1.0.* : Significa cualquier versión dentro de la rama 1.0

>=1.0,<2.2 : Cualquier versión entro 1.0 y 2.1.999999

~1.1 : Equivale a >=1.1,<2.0

~1.2 : Equivale a >=1.2,<2.0

~1.2@dev : Equivale a >=1.2,<2.0 con estabilidad dev

Monday, September 16, 13

Page 33: Introducción a composer

Versiones1.0.5 : Versión exacta

1.0.* : Significa cualquier versión dentro de la rama 1.0

>=1.0,<2.2 : Cualquier versión entro 1.0 y 2.1.999999

~1.1 : Equivale a >=1.1,<2.0

~1.2 : Equivale a >=1.2,<2.0

~1.2@dev : Equivale a >=1.2,<2.0 con estabilidad dev

~1.1.4 : Equivale a >=1.1.4,<1.2

Monday, September 16, 13

Page 34: Introducción a composer

Flags

Definen la estabilidad deseada para la dependencia a instalar

dev, alpha, beta, RC, stable

Monday, September 16, 13

Page 35: Introducción a composer

1.0.*@dev

>=1.0@RC,<2.2@beta

~1.1@RC

~1.2@alpha

Flags

Ejemplos

Monday, September 16, 13

Page 36: Introducción a composer

Repositorios

Monday, September 16, 13

Page 37: Introducción a composer

Repositorios

https://packagist.org/

Monday, September 16, 13

Page 38: Introducción a composer

Repositorios

https://packagist.org/

• Está abierto a todo projecto Open Source

Monday, September 16, 13

Page 39: Introducción a composer

Repositorios

https://packagist.org/

• Está abierto a todo projecto Open Source

•Una base de datos de librerías PHP

Monday, September 16, 13

Page 40: Introducción a composer

Repositorios

https://packagist.org/

• Está abierto a todo projecto Open Source

•Una base de datos de librerías PHP

• Se alimenta de repositorios VCS

Monday, September 16, 13

Page 41: Introducción a composer

Repositorios

https://github.com/composer/satis

Satis

Monday, September 16, 13

Page 42: Introducción a composer

Repositorios

https://github.com/composer/satis

•Generador de micro repositorios

Monday, September 16, 13

Page 43: Introducción a composer

Repositorios

https://github.com/composer/satis

•Generador de micro repositorios

• Ideal para proyectos privados

Monday, September 16, 13

Page 44: Introducción a composer

Repositorios

https://github.com/composer/satis

•Generador de micro repositorios

• Ideal para proyectos privados

• Facil de usar

Monday, September 16, 13

Page 45: Introducción a composer

Mas información

http://getcomposer.org

Monday, September 16, 13

Page 46: Introducción a composer

¿Symfony?

Monday, September 16, 13

Page 47: Introducción a composer

php composer.phar create-project \symfony/framework-standard-edition \path/to/install 2.3.4

Monday, September 16, 13

Page 48: Introducción a composer

¿Preguntas?

Monday, September 16, 13

Page 49: Introducción a composer

¡Gracias!

Monday, September 16, 13