Introducción a composer

Post on 25-May-2015

125 views 3 download

Tags:

Transcript of Introducción a composer

Monday, September 16, 13

¿Que es?

Monday, September 16, 13

• Gestor de dependencias para PHP

¿Que es?

Monday, September 16, 13

• Gestor de dependencias para PHP

• Basado NPM y Bundler

¿Que es?

Monday, September 16, 13

• Gestor de dependencias para PHP

• Basado NPM y Bundler

• Considerada una versión actualizada y mejorada de PEAR

¿Que es?

Monday, September 16, 13

• 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

• 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

• 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

No es un gestor de paquetes

Monday, September 16, 13

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

¿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

¿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

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": "ismaambrosi@gmail.com" } ], "minimum-stability": "stable"}

Monday, September 16, 13

composer.lock

Monday, September 16, 13

composer.lock

• Bloquea el proyecto a versiones específicas

Monday, September 16, 13

composer.lock

• Bloquea el proyecto a versiones específicas

• Creado al instalar dependencias(si no existe)

Monday, September 16, 13

composer.lock

• Bloquea el proyecto a versiones específicas

• Creado al instalar dependencias(si no existe)

• Modificado al actualizar dependencias

Monday, September 16, 13

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

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

¿Cómo lo uso?

Monday, September 16, 13

¿Cómo lo uso?Instalación

Monday, September 16, 13

¿Cómo lo uso?

Monday, September 16, 13

¿Cómo lo uso?Actualización

Monday, September 16, 13

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

Monday, September 16, 13

¿Cómo lo uso?Otras functionalidades

• composer init

• composer require

• composer create-project

• composer validate

• composer self-update

Monday, September 16, 13

Versiones

Monday, September 16, 13

Versiones1.0.5 : Versión exacta

Monday, September 16, 13

Versiones1.0.5 : Versión exacta

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

Monday, September 16, 13

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

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

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

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

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

Flags

Definen la estabilidad deseada para la dependencia a instalar

dev, alpha, beta, RC, stable

Monday, September 16, 13

1.0.*@dev

>=1.0@RC,<2.2@beta

~1.1@RC

~1.2@alpha

Flags

Ejemplos

Monday, September 16, 13

Repositorios

Monday, September 16, 13

Repositorios

https://packagist.org/

Monday, September 16, 13

Repositorios

https://packagist.org/

• Está abierto a todo projecto Open Source

Monday, September 16, 13

Repositorios

https://packagist.org/

• Está abierto a todo projecto Open Source

•Una base de datos de librerías PHP

Monday, September 16, 13

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

Repositorios

https://github.com/composer/satis

Satis

Monday, September 16, 13

Repositorios

https://github.com/composer/satis

•Generador de micro repositorios

Monday, September 16, 13

Repositorios

https://github.com/composer/satis

•Generador de micro repositorios

• Ideal para proyectos privados

Monday, September 16, 13

Repositorios

https://github.com/composer/satis

•Generador de micro repositorios

• Ideal para proyectos privados

• Facil de usar

Monday, September 16, 13

Mas información

http://getcomposer.org

Monday, September 16, 13

¿Symfony?

Monday, September 16, 13

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

Monday, September 16, 13

¿Preguntas?

Monday, September 16, 13

¡Gracias!

Monday, September 16, 13