SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
Composer
Dependency management for PHP
What’s up!
•  Soy Adán Lobato
•  Soy de Barcelona
•  Soy software developer
•  Trabajo en SocialPoint
•  Mi twitter es @adanlobato

¡Interrumpidme cuando queráis!
2
Agenda
•  Composer Basics
•  Mastering Composer
•  Bottlenecks
•  Enlaces de interés
•  ¿Preguntas?

3
Composer Basics
¿Qué es Composer?
Es una herramienta que nos permite definir cuáles son las librerías de
las que depende nuestro proyecto y las instala por nosotros.

Jordi Boggiano (@seldaek)

5
¿Es un concepto nuevo?
•  En python existe pip
•  En javascript existe npm
•  En ruby existe bundler
•  En php existe… ¿ PEAR / Pyrus ?

6
7
¿Alternativas en PHP?
PEAR

Pyrus

Composer

Instalación

Global

Global/Local

Global*/Local

Package types

Dist

Dist

Dist/Source

PEAR support

Yes

Yes

Yes

VCS support

No

No

Yes

(*) Only CLI applications
8
Instalación
Instalación
curl -S http://getcomposer.org/installer | php

10
Instalación
$ php composer.phar
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ /
/ __ / __ `__ / __ / __ / ___/ _ / ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
____/____/_/ /_/ /_/ .___/____/____/___/_/
/_/
Composer version 3da05c68f9561fa822c522b1815435ff990493ff 2013-10-02 14:25:06
Usage:
[options] command [arguments]
Available commands:
init
Creates a basic composer.json file in current directory.
install
Installs the project dependencies from the composer.lock file...
require
Adds required packages to your composer.json and installs them
search
Search for packages
self-update
Updates composer.phar to the latest version.
show
Show information about packages
status
Show a list of locally modified packages
update
Updates your dependencies to the latest version according to...
validate
Validates a composer.json

11
Instalación
01. $ sudo mv composer.phar /usr/local/bin/composer
02. $ sudo chmod +x /usr/local/bin
03. $ sudo composer self-update

12
Primeros pasos
Instalando dependencias
$ composer require twig/twig

14

"1.*"
Instalando dependencias

2.0.1
15
Instalando dependencias

2.0.*
16
Instalando dependencias

>=2.1,<3.0
17
Instalando dependencias

~2.1
18
Analizando el resultado
$ tree -L 3
├── composer.json
├── composer.lock
└── vendor
├── autoload.php
├── composer
│
├── ClassLoader.php
│
├── autoload_classmap.php
│
├── autoload_namespaces.php
│
├── autoload_real.php
│
└── installed.json
└── twig
└── twig

19
composer.json
01. {
02.

"require": {

03.
04.

"twig/twig" : "1.*"
}

05. }

20
composer.lock
•  Si existe, reemplaza a composer.json
•  Congela nuestras dependencias a una versión concreta
•  Permite que todo el equipo trabaje/testee sobre las mismas versiones
•  Imprescindible para deployments
•  Debe estar commiteado en el VCS de nuestro proyecto
•  Para actualizarlo: composer update

21
Autoloading
01. <?php
02. require_once __DIR__.'/vendor/autoload.php';
03.
04.
05.
06.
07. // Your code
22
Autoloading
01. <?php
02. $loader = require_once __DIR__.'/vendor/autoload.php';
03. $loader->add('MyNamespace', array('src'));
04. $loader->add('My_Namespace', array('src', 'lib'));
05. $loader->addClassmap($classmap);
06.
07. // Your code
23
Repositorios
Packagist
•  Repositorio central de paquetes de Composer
•  Actúa como proxy entre los repositorios VCS y los usuarios de Composer
•  Puede almacenar cualquier tipo de librería PHP: components, bundles,
plugins, módulos…
•  Todo proyecto Open Source debería estar en Packagist
•  Buen lugar dónde encontrar librerías para tu aplicación

25
VCS: git, svn, hg…
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/symfony/Yaml"
}
],
"require": {
"symfony/yaml": "2.3.*"
}
}

26
PEAR
{
"repositories": [
{
"type": "pear",
"url": "http://pear2.php.net"
}
],
"require": {
"pear-pear2.php.net/PEAR2_Text_Markdown": "*",
"pear-pear2/PEAR2_HTTP_Request": "*"
}
}

27
Repositorios sin composer.json
{

"repositories": [
{
"type": "package",
"package": {
"name": "smarty/smarty",
"version": "3.1.7",
"dist": {
"url": "http://www.smarty.net/files/Smarty-3.1.7.zip",
"type": "zip"
},
"source": {
"url": "http://smarty-php.googlecode.com/svn/",
"type": "svn",
"reference": "tags/Smarty_3_1_7/distribution/"
},
"autoload": {
"classmap": ["libs/"]
}
}
}
],
"require": {
"smarty/smarty": "3.1.*"
}

28

}
Creando un
paquete
Creando un paquete
{

}

"name": "trovit/foo",
"description": "Super cool library for foo stuff",
"homepage": "http://foo.trovit.es",
"license": "MIT",
"authors": [
{ "name": "Trovit backend team", "email": "backend@trovit.es"}
],
"autoload": {
"psr-0": { "TrovitFoo": "src/" }
},
"require": {
"php": ">=5.3.2",
"ext-curl": "*",
"symfony/console": "2.3.~"
}

30
Creando un paquete: Autoloading
01. "autoload": {
02.

"psr-0": {

03.
04.

"TrovitFoo": "src/"
}

05. }

31
Creando un paquete: Autoloading
01. "autoload": {
02.

"psr-0": {

03.
04.

"Trovit_": "src/"
}

05. }

32
Creando un paquete: Autoloading
01. "autoload": {
02.

"classmap": ["src/", "lib/"]

03. }

33
Creando un paquete: Autoloading
01. "autoload": {
02.

"files": ["src/Trovit/functions.php"]

03. }

34
Scripts
Scripts
Permiten ejecutar acciones ante determinados eventos de Composer.

•  pre|post-install-cmd
•  pre|post-update-cmd
•  pre|post-package-install
•  pre|post-package-update

36
Scripts
{
"scripts": {
"post-install-cmd": [
"MyNamescapeScriptHandler::buildBootstrap"
],
"post-update-cmd": [
"rm -rf app/cache/*"
]
}
}

37
Instaladores
Instaladores oficiales
•  Wordpress
•  Drupal
•  CakePHP
•  CodeIgniter
•  Laravel
•  ¡Y muchos más!
http://github.com/composer/installers
39
Instaladores propios
http://getcomposer.org/doc/articles/custom-installers.md

40
Mastering
Composer
Semantic versioning

X.Y.Z
http://semver.org/spec/v2.0.0.html

42
Branch aliases
01. "extra": {
02.

"branch-alias": {

03.
04.

"dev-master": "1.0.x-dev"
}

05. }

43
Trabajando con forks
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/adanlobato/Yaml"
}
],
"require": {
"symfony/yaml": "dev-hotfix"
}
}

44
Trabajando con forks
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/adanlobato/Yaml"
}
],
"require": {
"symfony/yaml": "dev-hotfix as 1.0.x-dev"
}
}

45
Minimum stability
{
"minimum-stability": "stable",
"require": {
"symfony/config": "2.3",
"symfony/yaml": "2.3.*@dev",
"symfony/console": "2.3.*@beta"
}
}

46
Autoloading optimizado
$ composer dump-autoload --optimize

47
Repositorios privados: Satis
•  Es una versión reducida de Packagist
•  Se instala y se configura muy rápido
•  Es ideal para repositorios privados

48
Repositorios privados: Satis
$ composer create-project composer/satis

49
Repositorios privados: Satis
// config.json
{
"name": "Trovit Repository",
"homepage": "http://packages.trovit.es",
"require-all": true,
"repositories": [
{
"type": "git",
"url": "https://github.com/trovit/super-cool-library"
}
]
}

50
Repositorios privados: Satis
$ php bin/satis build config.json web/

51
Repositorios privados: Satis
Para protegerlo del exterior:

•  Basic HTTP Authentication
•  SSH
•  Red privada

52
Repositorios privados: Packagist
•  Packagist es Open Source
•  Puedes instalarte tu propio packagist
•  Soporta Github Webhooks

53
Bottlenecks
Bottlenecks
•  Dependency Solver
•  Github
•  Github post-receive hooks
•  Repositorios privados

55
Enlaces de interés
•  getcomposer.org
•  packagist.org
•  github.com/composer

56
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y PuppetRichard Moya
 
Entornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetEntornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetVicent Soria Durá
 
MythTV Mediacenter on an IGEPv2
MythTV Mediacenter on an IGEPv2 MythTV Mediacenter on an IGEPv2
MythTV Mediacenter on an IGEPv2 marcoita
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccionkillfill
 
SSRF, la vulnerabilidad de las aplicaciones web modernas
SSRF, la vulnerabilidad de las aplicaciones web modernasSSRF, la vulnerabilidad de las aplicaciones web modernas
SSRF, la vulnerabilidad de las aplicaciones web modernasEfren Diaz Gomez
 
reto-by-q3rv0
reto-by-q3rv0reto-by-q3rv0
reto-by-q3rv0q3rv0
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaipquaip
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con DockerErnesto Crespo
 
Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para TodosMariano Iglesias
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programaciónMario Garcia-Valdez
 
Creación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y ExpressCreación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y Expressbetabeers
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonCodeSyntax
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a NodejsJan Sanchez
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPDaniel Primo
 
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPablo Godel
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemMario IC
 

La actualidad más candente (20)

Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
 
Entornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetEntornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppet
 
MythTV Mediacenter on an IGEPv2
MythTV Mediacenter on an IGEPv2 MythTV Mediacenter on an IGEPv2
MythTV Mediacenter on an IGEPv2
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccion
 
SSRF, la vulnerabilidad de las aplicaciones web modernas
SSRF, la vulnerabilidad de las aplicaciones web modernasSSRF, la vulnerabilidad de las aplicaciones web modernas
SSRF, la vulnerabilidad de las aplicaciones web modernas
 
reto-by-q3rv0
reto-by-q3rv0reto-by-q3rv0
reto-by-q3rv0
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
 
Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para Todos
 
Vagrant
VagrantVagrant
Vagrant
 
Vagrant
VagrantVagrant
Vagrant
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Creación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y ExpressCreación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y Express
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en Python
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
 
Gestionando servidores con Puppet
Gestionando servidores con PuppetGestionando servidores con Puppet
Gestionando servidores con Puppet
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
 
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 

Similar a Dependency management for PHP

Cómo crear una distribución Linux
Cómo crear una distribución LinuxCómo crear una distribución Linux
Cómo crear una distribución LinuxMauro Parra-Miranda
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasosSoni BM
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrolloAlejandro Hernández
 
Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Demian Raschkovan
 
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+DinLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+DinLabFIB
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasoshydras_cs
 
Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?  Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador? Luis Stifler
 
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosDesymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosJavier Eguiluz
 
Zeety open project manual de instalación
Zeety   open project manual de instalaciónZeety   open project manual de instalación
Zeety open project manual de instalacióngrupozeety
 
633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completoMETROPOLITANO
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completoErnesto Gamboa
 
633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completoUbeimar Navarro Herrera
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completoIgnacio Reyes
 
633f9e tutorial de php y my sql completo (1)
633f9e tutorial de php y my sql completo (1)633f9e tutorial de php y my sql completo (1)
633f9e tutorial de php y my sql completo (1)Eduardo Monroy Husillos
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completoAlberto Martinez
 

Similar a Dependency management for PHP (20)

Cómo crear una distribución Linux
Cómo crear una distribución LinuxCómo crear una distribución Linux
Cómo crear una distribución Linux
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 
Php andmysql
Php andmysqlPhp andmysql
Php andmysql
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Composer & SemVer
Composer & SemVerComposer & SemVer
Composer & SemVer
 
Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365
 
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+DinLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasos
 
Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?  Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?
 
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosDesymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
 
Zeety open project manual de instalación
Zeety   open project manual de instalaciónZeety   open project manual de instalación
Zeety open project manual de instalación
 
633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo
 
Tutorial mysqlphp
Tutorial mysqlphpTutorial mysqlphp
Tutorial mysqlphp
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
633f9e tutorial de php y my sql completo (1)
633f9e tutorial de php y my sql completo (1)633f9e tutorial de php y my sql completo (1)
633f9e tutorial de php y my sql completo (1)
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (10)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Dependency management for PHP