Composer the right way - DPC15

Rafael Dohms
Rafael DohmsLead Backend Engineer at Usabilla
Composerthe right way
@rdohms
Rafael Dohms
photo: smileymanwithahat
Composer the right way - DPC15
Composer the right way - DPC15
photo: Rob Allen
photo: 18millionpixels
Library Publisher
photo: 18millionpixels
Library Publisher
Library Consumer
photo: 18millionpixels
Library Publisher
Library
Library Consumer
photo: 18millionpixels
Library Publisher
Library
Library Consumer
Packagist
photo: 18millionpixels
photo: 18millionpixels
{
"require": {
"monolog/monolog": “2.0”
}
}
photo: 18millionpixels
{
"require": {
"monolog/monolog": “2.0”
}
}
{
"name": “monolog/monolog”
...
}
photo: 18millionpixels
{
"require": {
"monolog/monolog": “2.0”
}
}
{
"name": “monolog/monolog”
...
}
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package monolog/monolog could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Installation failed, reverting ./composer.json to its original content.
photo: 18millionpixels
{
"require": {
"monolog/monolog": “2.0”
}
}
{
"name": “monolog/monolog”
...
}
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package monolog/monolog could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Installation failed, reverting ./composer.json to its original content.
___

~1.1
photo: 18millionpixels
{
"require": {
"monolog/monolog": “2.0”
}
}
{
"name": “monolog/monolog”
...
}
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package monolog/monolog could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Installation failed, reverting ./composer.json to its original content.
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing psr/log (1.0.0)
Loading from cache
- Installing monolog/monolog (1.11.0)
Downloading: 100%
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
[...]
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
Writing lock file
Generating autoload files
___

~1.1
photo: 18millionpixels
composer
composercomposer.json!
composercomposer.json!
composer.lock!
composercomposer.json!
composer.lock!
discovery Packagist
"
composercomposer.json!
composer.lock!
discovery sourcePackagist
"
Repository
#
composercomposer.json!
composer.lock!
discovery source
installation
Packagist
"
Vendor

Folder
$
Repository
#
composercomposer.json!
composer.lock!
$ composer init
Library Publisher
$ composer init
Library Publisher
$ composer require <vendor>/<package>
Library Consumer
$ composer require monolog/monolog
Tip
$ composer require monolog/monolog
Tip
Using version ~1.11 for monolog/monolog
Release the @DOHMSRAKEN!!
photo by @rosstuck
$ composer require monolog/monolog --sort-packages
Tip
Library Publishers
Composer for
Library Publisher Unique vendor names
vendor / package
Library Publisher Unique vendor names
pick your own 

unique vendor
Library Publisher Unique vendor names
or join a collective
README!
CHANGELOG%
LICENSE&
Library Publisher What’s in your library?
README!
CHANGELOG%
LICENSE&
Library Publisher What’s in your library?
' What problem does it solve?
' Usage examples
' Install instructions
' How can I contribute?
README!
CHANGELOG%
LICENSE&
Library Publisher What’s in your library?
' List relevant changes
' Make BC breaks prominent
' Show examples of how to upgrade
' What problem does it solve?
' Usage examples
' Install instructions
' How can I contribute?
README!
CHANGELOG%
LICENSE&
Library Publisher What’s in your library?
' List relevant changes
' Make BC breaks prominent
' Show examples of how to upgrade
' Pick one that reflects your values
' choosealicense.com can help
' What problem does it solve?
' Usage examples
' Install instructions
' How can I contribute?
Library Publisher Semantic Versioning
1 . 2 3.major minor patch
Library Publisher Semantic Versioning
1 . 2 3.major minor patch
Bug Fixes
Library Publisher Semantic Versioning
1 . 2 3.major minor patch
New Features Bug Fixes
Library Publisher Semantic Versioning
1 . 2 3.major minor patch
API / BC
Breaks
New Features Bug Fixes
Library Publisher Tagging
Tag it and Bag it
Library Publisher Tagging
# Simple Tag
$ git tag v1.2.3

# Annotated Tag

$ git tag -a v1.2.3 -m “Description of Release"
Library Publisher “I'm out"
photo: jilliancorinne
Library Publisher “I'm out"
Library Publisher “I'm out"
Click here and provide an alternative
Library Publisher “I'm out"
Pick the 

correct 

version
Library Publisher Pick a Version
*the asterisk
Library Publisher Pick a Version
*the asterisk○Library Publisher Pick a Version
~the tilde
Library Publisher Pick a Version
~1.2
>=1.2.0, <2.0.0
Library Publisher Pick a Version
~1.2
>=1.2.0, <2.0.0
Library Publisher Pick a Version
)
~1.2.3
>=1.2.3, <1.3
Library Publisher Pick a Version
~1.2.3
>=1.2.3, <1.3
Library Publisher Pick a Version
)
"require": {
"zendframework/zend-stdlib": “2.1.*”,
"zendframework/zend-servicemanager": "2.1.*",
},
“require-dev": {
“phpunit/phpunit": “~3.7”
}
Library Publisher Pick a Version
"require": {
"zendframework/zend-stdlib": “~2.3”,
"zendframework/zend-servicemanager": “~2.3",
},
“require-dev": {
“phpunit/phpunit": “~4”
}
3rd party library
Your application
"require": {
"zendframework/zend-stdlib": “2.1.*”,
"zendframework/zend-servicemanager": "2.1.*",
},
“require-dev": {
“phpunit/phpunit": “~3.7”
}
Library Publisher Pick a Version
"require": {
"zendframework/zend-stdlib": “~2.3”,
"zendframework/zend-servicemanager": “~2.3",
},
“require-dev": {
“phpunit/phpunit": “~4”
}
3rd party library
Your application
*
"require": {
"zendframework/zend-stdlib": “2.1.*”,
"zendframework/zend-servicemanager": "2.1.*",
},
“require-dev": {
“phpunit/phpunit": “~3.7”
}
Library Publisher Pick a Version
"require": {
"zendframework/zend-stdlib": “~2.3”,
"zendframework/zend-servicemanager": “~2.3",
},
“require-dev": {
“phpunit/phpunit": “~4”
}
3rd party library
Your application
*
"require": {
"zendframework/zend-stdlib": “2.1.*”,
"zendframework/zend-servicemanager": "2.1.*",
},
“require-dev": {
“phpunit/phpunit": “~3.7”
}
Library Publisher Pick a Version
"require": {
"zendframework/zend-stdlib": “~2.3”,
"zendframework/zend-servicemanager": “~2.3",
},
“require-dev": {
“phpunit/phpunit": “~4”
}
3rd party library
Your application
*
~2.1
Yo @rdohms, I’m
really happy for you and
I’m gonna let you finish, but
the tilde operator is
totally old news.
^the caret
Library Publisher Pick a Version
1.2.3
>=1.2.3, <2.0.0
Library Publisher Pick a Version
^
1.2.3
>=1.2.3, <2.0.0
Library Publisher Pick a Version
)
^
)
0.3.0
>=0.3.0, <0.4.0
Library Publisher Pick a Version
^
0.3.0
>=0.3.0, <0.4.0
Library Publisher Pick a Version
^
)
0.3.0
>=0.3.0, <0.4.0
Library Publisher Pick a Version
^
)
Major Version Zero
Library Consumers
Composer for
Library Consumer Install or update?
install or update?
Library Consumer Install or update?
Make sure you have
installed the last
updates from other
developers.
?
install updateor
Library Consumer Install or update?
Make sure you have
installed the last
updates from other
developers.
?
install updateor
Library Consumer Install or update?
Deploying a new
release of your
application to
production.
?
install updateor
Library Consumer Install or update?
Deploying a new
release of your
application to
production.
?
install updateor
Library Consumer Install or update?
Checked out a new
project and want to
start coding.
?
install updateor
Library Consumer Install or update?
Checked out a new
project and want to
start coding.
?
install updateor
Library Consumer Install or update?
Grab new versions for
the dependencies of
your project.
?
install updateor
Library Consumer Install or update?
Grab new versions for
the dependencies of
your project.
?
install updateor
Your application
$
Public
Repository
#
Library Consumer Install or update?
composer.lock!
composer install
composer update
Your application
$
Public
Repository
#
Library Consumer Install or update?
composer.lock!
read
composer install
composer update
Your application
$
Public
Repository
#
Library Consumer Install or update?
composer.lock!
read grab version
composer install
composer update
Your application
$
Public
Repository
#
Library Consumer Install or update?
composer.lock!
read grab version
check latest compatible release
composer install
composer update
Your application
$
Public
Repository
#
Library Consumer Install or update?
composer.lock!
read grab version
check latest compatible release
update
composer install
composer update
Library Consumer Install or update?
commit your lock file
Library Consumer Install or update?
$ composer update --lock
Tip
Pick the 

correct 

version
Library Consumer Version Selection
Library Consumer Version Selection
dev-master
Library Consumer Version Selection
Library Consumer Version Selection
Library Consumer Using forks
found a bug?
Library Consumer Using forks
$ composer install --prefer-source
Tip
Library Consumer Using forks
Library Consumer Using forks
patch it,
Library Consumer Using forks
patch it,
fork it,
Library Consumer Using forks
patch it,
fork it,
push it…
Library Consumer Using forks
patch it,
fork it,
push it…
wait for it.
Library Consumer Using forks
patch it,
fork it,
push it…
wait for it.
Library Consumer Using forks
symfony/symfony
Library Consumer Using forks
symfony/symfony
rdohms/symfony
Library Consumer Using forks
symfony/symfony
rdohms/symfony
"repositories": [
{
"type": "vcs",
"url": "https://github.com/rdohms/symfony"
}
]
Library Consumer Using forks
symfony/symfony
rdohms/symfony
"repositories": [
{
"type": "vcs",
"url": "https://github.com/rdohms/symfony"
}
]
+
Library Consumer Using forks
Do not put
forked repositories

on packagist
,
Library Consumer Using forks
"require": {
"symfony/symfony": "dev-my-patch as 2.5.0"
}
Tip
Library Consumer Composer and deployments
Composer
and
production
Library Consumer Composer and deployments
Production
Server
-
Packagist
.
Library Consumer Composer and deployments
Production
Server
-
Packagist
.
/ Man in the middle
Library Consumer Composer and deployments
Build Server
0
Production
Server
-
"
Packagist
.
/ Man in the middle
Library Consumer Composer and deployments
$ composer install --prefer-dist --no-dev --optimize-autoloader
,
Library Consumer Composer and deployments
$ composer install --prefer-dist --no-dev --optimize-autoloader
,
Library Consumer Composer and deployments
$ composer install --prefer-dist --no-dev --optimize-autoloader
,
1 Install same versions
1 Uses information defined in the composer.lock file
$ composer install --prefer-dist --no-dev --optimize-autoloader
Library Consumer Composer and deployments
,
$ composer install --prefer-dist --no-dev --optimize-autoloader
Library Consumer Composer and deployments
,
1 Downloads distribution packages
1 Can use local cache for previously downloaded
1 No git required
$ composer install --prefer-dist --no-dev --optimize-autoloader
Library Consumer Composer and deployments
,
$ composer install --prefer-dist --no-dev --optimize-autoloader
Library Consumer Composer and deployments
,
1 Avoids download unnecessary developer libraries
$ composer install --prefer-dist --no-dev --optimize-autoloader
Library Consumer Composer and deployments
,
$ composer install --prefer-dist --no-dev --optimize-autoloader
Library Consumer Composer and deployments
,
1 Generates classmap from PSR-0/4 autoloaders
1 Speeds up autoloading
Library Consumer Licensing
$ composer licenses
Name: __root__
Version: 1.0.0
Licenses: none
Dependencies:
doctrine/annotations v1.2.1 MIT
doctrine/cache v1.3.1 MIT
doctrine/collections v1.2 MIT
doctrine/common v2.4.2 MIT
doctrine/inflector v1.0 MIT
doctrine/lexer v1.0 MIT
psr/log 1.0.0 MIT
symfony/symfony v2.5.6 MIT
twig/twig v1.16.2 BSD-3-Clause
Tip
Library Consumer Private Packages and Proxy
Satis and Toran
composer Packagist
"
Your application
$
Public
Repository
#
Library Consumer Private Packages and Proxy
composer
Packagist
"
Your application
$
Public
Repository
#
Satis / Toran
"
Private
Repository
2
proxy
Library Consumer Private Packages and Proxy
Library Consumer Private Packages and Proxy
toranproxy.com
private repos, automatic packagist proxy
and support composer development
Library Consumer Tooling
$ composer require jquery/jquery
How many of you?
Library Consumer Tooling
Library Consumer Tooling
Javascript only Developer
Library Consumer Tooling
3 my-js-library
4
Javascript only Developer
Library Consumer Tooling
3 my-js-library
! package.json
4
Javascript only Developer
Library Consumer Tooling
3 my-js-library
! package.json
! bower.json
4
Javascript only Developer
Library Consumer Tooling
3 my-js-library
! composer.json
! package.json
! bower.json
4
Javascript only Developer
Library Consumer Tooling
3 my-js-library
! composer.json
! package.json
! bower.json
! .gemspec
4
Javascript only Developer
Library Consumer Tooling
3 my-js-library
! composer.json
! package.json
! bower.json
! .gemspec
4
/
/
Library Consumer Tooling
Library Consumer Tooling
Right tool.

Right job.
Library Consumer One last thing
One last thing…
Library Consumer pickle!
Library Consumer pickle!
$ pickle install memcache
https://wiki.php.net/rfc/pickle
https://github.com/FriendsOfPHP/pickle
Thank you.
https://joind.in/14245
https://leanpub.com/
composer-cookbook
Thank you.any questions?
5 http://slides.doh.ms
6 http://doh.ms
7 @rdohms
https://joind.in/14245
https://leanpub.com/
composer-cookbook
1 of 135

Recommended

Composer The Right Way by
Composer The Right WayComposer The Right Way
Composer The Right WayRafael Dohms
1.5K views136 slides
Composer The Right Way #PHPjhb15 by
Composer The Right Way #PHPjhb15Composer The Right Way #PHPjhb15
Composer The Right Way #PHPjhb15Rafael Dohms
1.4K views120 slides
Composer the right way - NomadPHP by
Composer the right way - NomadPHPComposer the right way - NomadPHP
Composer the right way - NomadPHPRafael Dohms
1.3K views134 slides
Composer the right way by
Composer the right wayComposer the right way
Composer the right wayRafael Dohms
7K views128 slides
Composer the Right Way - PHPBNL16 by
Composer the Right Way - PHPBNL16Composer the Right Way - PHPBNL16
Composer the Right Way - PHPBNL16Rafael Dohms
2.6K views137 slides
Composer the Right Way - PHPSRB16 by
Composer the Right Way - PHPSRB16Composer the Right Way - PHPSRB16
Composer the Right Way - PHPSRB16Rafael Dohms
3.9K views154 slides

More Related Content

What's hot

Composer The Right Way - 010PHP by
Composer The Right Way - 010PHPComposer The Right Way - 010PHP
Composer The Right Way - 010PHPRafael Dohms
3.5K views158 slides
Composer the right way [SweetlakePHP] by
Composer the right way [SweetlakePHP]Composer the right way [SweetlakePHP]
Composer the right way [SweetlakePHP]Rafael Dohms
2.6K views129 slides
Composer for Busy Developers - php|tek13 by
Composer for Busy Developers - php|tek13Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13Rafael Dohms
11.1K views133 slides
Composer by
ComposerComposer
ComposerFederico Damián Lozada Mosto
1.9K views54 slides
Composer the right way - SunshinePHP by
Composer the right way - SunshinePHPComposer the right way - SunshinePHP
Composer the right way - SunshinePHPRafael Dohms
2.7K views135 slides
Dependency management with Composer by
Dependency management with ComposerDependency management with Composer
Dependency management with ComposerJason Grimes
3.3K views56 slides

What's hot(20)

Composer The Right Way - 010PHP by Rafael Dohms
Composer The Right Way - 010PHPComposer The Right Way - 010PHP
Composer The Right Way - 010PHP
Rafael Dohms3.5K views
Composer the right way [SweetlakePHP] by Rafael Dohms
Composer the right way [SweetlakePHP]Composer the right way [SweetlakePHP]
Composer the right way [SweetlakePHP]
Rafael Dohms2.6K views
Composer for Busy Developers - php|tek13 by Rafael Dohms
Composer for Busy Developers - php|tek13Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13
Rafael Dohms11.1K views
Composer the right way - SunshinePHP by Rafael Dohms
Composer the right way - SunshinePHPComposer the right way - SunshinePHP
Composer the right way - SunshinePHP
Rafael Dohms2.7K views
Dependency management with Composer by Jason Grimes
Dependency management with ComposerDependency management with Composer
Dependency management with Composer
Jason Grimes3.3K views
PHP Dependency Management with Composer by Adam Englander
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with Composer
Adam Englander5.7K views
Dependency Management with Composer by Jordi Boggiano
Dependency Management with ComposerDependency Management with Composer
Dependency Management with Composer
Jordi Boggiano3.9K views
Asynchronous Systems with Fn Flow by José Paumard
Asynchronous Systems with Fn FlowAsynchronous Systems with Fn Flow
Asynchronous Systems with Fn Flow
José Paumard610 views
Php psr standard 2014 01-22 by Võ Duy Tuấn
Php psr standard 2014 01-22Php psr standard 2014 01-22
Php psr standard 2014 01-22
Võ Duy Tuấn4.9K views
CMake Tutorial by Fu Haiping
CMake TutorialCMake Tutorial
CMake Tutorial
Fu Haiping3.5K views
Lecture1: NGS Analysis on Beocat and an introduction to Perl programming for ... by Jennifer Shelton
Lecture1: NGS Analysis on Beocat and an introduction to Perl programming for ...Lecture1: NGS Analysis on Beocat and an introduction to Perl programming for ...
Lecture1: NGS Analysis on Beocat and an introduction to Perl programming for ...
Jennifer Shelton4.2K views
Composer for Magento 1.x and Magento 2 by Sergii Shymko
Composer for Magento 1.x and Magento 2Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2
Sergii Shymko424 views
Digital Fabrication Studio.02 _Information @ Aalto Media Factory by Massimo Menichinelli
Digital Fabrication Studio.02 _Information @ Aalto Media FactoryDigital Fabrication Studio.02 _Information @ Aalto Media Factory
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
Distributing UI Libraries: in a post Web-Component world by Rachael L Moore
Distributing UI Libraries: in a post Web-Component worldDistributing UI Libraries: in a post Web-Component world
Distributing UI Libraries: in a post Web-Component world
Rachael L Moore553 views

Similar to Composer the right way - DPC15

Composer by
ComposerComposer
ComposerTom Corrigan
1.2K views69 slides
Managing your Drupal project with Composer by
Managing your Drupal project with ComposerManaging your Drupal project with Composer
Managing your Drupal project with ComposerMatt Glaman
432 views32 slides
Internal Android Library Management (DroidCon SF 2016, Droidcon Italy 2016) by
Internal Android Library Management (DroidCon SF 2016, Droidcon Italy 2016)Internal Android Library Management (DroidCon SF 2016, Droidcon Italy 2016)
Internal Android Library Management (DroidCon SF 2016, Droidcon Italy 2016)Kelly Shuster
14.3K views174 slides
Android Internal Library Management by
Android Internal Library ManagementAndroid Internal Library Management
Android Internal Library ManagementKelly Shuster
1.8K views197 slides
Managing Change by
Managing ChangeManaging Change
Managing ChangeMirko Jahn
1K views45 slides
Mastering composer by
Mastering composerMastering composer
Mastering composerAdán Lobato Lorenzo
10.5K views66 slides

Similar to Composer the right way - DPC15(20)

Managing your Drupal project with Composer by Matt Glaman
Managing your Drupal project with ComposerManaging your Drupal project with Composer
Managing your Drupal project with Composer
Matt Glaman432 views
Internal Android Library Management (DroidCon SF 2016, Droidcon Italy 2016) by Kelly Shuster
Internal Android Library Management (DroidCon SF 2016, Droidcon Italy 2016)Internal Android Library Management (DroidCon SF 2016, Droidcon Italy 2016)
Internal Android Library Management (DroidCon SF 2016, Droidcon Italy 2016)
Kelly Shuster14.3K views
Android Internal Library Management by Kelly Shuster
Android Internal Library ManagementAndroid Internal Library Management
Android Internal Library Management
Kelly Shuster1.8K views
Managing Change by Mirko Jahn
Managing ChangeManaging Change
Managing Change
Mirko Jahn1K views
Dependency management in Magento with Composer by Manuele Menozzi
Dependency management in Magento with ComposerDependency management in Magento with Composer
Dependency management in Magento with Composer
Manuele Menozzi2.2K views
Php Dependency Management with Composer ZendCon 2016 by Clark Everetts
Php Dependency Management with Composer ZendCon 2016Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016
Clark Everetts1K views
Deep Dive Java 17 Devoxx UK by José Paumard
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
José Paumard994 views
DockerCon EU 2018 - Dockerfile Best Practices by Tibor Vass
DockerCon EU 2018 - Dockerfile Best PracticesDockerCon EU 2018 - Dockerfile Best Practices
DockerCon EU 2018 - Dockerfile Best Practices
Tibor Vass292 views
DCEU 18: Dockerfile Best Practices by Docker, Inc.
DCEU 18: Dockerfile Best PracticesDCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best Practices
Docker, Inc.2.8K views
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v... by Felipe Prado
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
Felipe Prado37 views
7 Tips on Getting Your Theme Approved the First Time by Dmitry Mayorov
7 Tips on Getting Your Theme Approved the First Time7 Tips on Getting Your Theme Approved the First Time
7 Tips on Getting Your Theme Approved the First Time
Dmitry Mayorov1.8K views
Introduction to Composer for Drupal by Luc Bézier
Introduction to Composer for DrupalIntroduction to Composer for Drupal
Introduction to Composer for Drupal
Luc Bézier774 views
Wordpress development: A Modern Approach by Alessandro Fiore
Wordpress development:  A Modern ApproachWordpress development:  A Modern Approach
Wordpress development: A Modern Approach
Alessandro Fiore948 views

More from Rafael Dohms

Application Metrics - IPC2023 by
Application Metrics - IPC2023Application Metrics - IPC2023
Application Metrics - IPC2023Rafael Dohms
7 views87 slides
How'd we get here? A guide to Architectural Decision Records by
How'd we get here? A guide to Architectural Decision RecordsHow'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision RecordsRafael Dohms
306 views42 slides
Architectural Decision Records - PHPConfBR by
Architectural Decision Records - PHPConfBRArchitectural Decision Records - PHPConfBR
Architectural Decision Records - PHPConfBRRafael Dohms
299 views42 slides
Application Metrics (with Prometheus examples) by
Application Metrics (with Prometheus examples)Application Metrics (with Prometheus examples)
Application Metrics (with Prometheus examples)Rafael Dohms
998 views89 slides
Application metrics - Confoo 2019 by
Application metrics - Confoo 2019Application metrics - Confoo 2019
Application metrics - Confoo 2019Rafael Dohms
747 views90 slides
Writing code you won’t hate tomorrow - PHPCE18 by
Writing code you won’t hate tomorrow - PHPCE18Writing code you won’t hate tomorrow - PHPCE18
Writing code you won’t hate tomorrow - PHPCE18Rafael Dohms
1.2K views86 slides

More from Rafael Dohms(20)

Application Metrics - IPC2023 by Rafael Dohms
Application Metrics - IPC2023Application Metrics - IPC2023
Application Metrics - IPC2023
Rafael Dohms7 views
How'd we get here? A guide to Architectural Decision Records by Rafael Dohms
How'd we get here? A guide to Architectural Decision RecordsHow'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision Records
Rafael Dohms306 views
Architectural Decision Records - PHPConfBR by Rafael Dohms
Architectural Decision Records - PHPConfBRArchitectural Decision Records - PHPConfBR
Architectural Decision Records - PHPConfBR
Rafael Dohms299 views
Application Metrics (with Prometheus examples) by Rafael Dohms
Application Metrics (with Prometheus examples)Application Metrics (with Prometheus examples)
Application Metrics (with Prometheus examples)
Rafael Dohms998 views
Application metrics - Confoo 2019 by Rafael Dohms
Application metrics - Confoo 2019Application metrics - Confoo 2019
Application metrics - Confoo 2019
Rafael Dohms747 views
Writing code you won’t hate tomorrow - PHPCE18 by Rafael Dohms
Writing code you won’t hate tomorrow - PHPCE18Writing code you won’t hate tomorrow - PHPCE18
Writing code you won’t hate tomorrow - PHPCE18
Rafael Dohms1.2K views
Application Metrics (with Prometheus examples) #PHPDD18 by Rafael Dohms
Application Metrics (with Prometheus examples) #PHPDD18Application Metrics (with Prometheus examples) #PHPDD18
Application Metrics (with Prometheus examples) #PHPDD18
Rafael Dohms757 views
Application metrics with Prometheus - DPC18 by Rafael Dohms
Application metrics with Prometheus - DPC18Application metrics with Prometheus - DPC18
Application metrics with Prometheus - DPC18
Rafael Dohms1.3K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf by Rafael Dohms
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf
Rafael Dohms3.9K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo... by Rafael Dohms
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...
Rafael Dohms1.4K views
Writing Code That Lasts - #Magento2Seminar, Utrecht by Rafael Dohms
Writing Code That Lasts - #Magento2Seminar, UtrechtWriting Code That Lasts - #Magento2Seminar, Utrecht
Writing Code That Lasts - #Magento2Seminar, Utrecht
Rafael Dohms976 views
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16 by Rafael Dohms
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16
Rafael Dohms1.4K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. by Rafael Dohms
“Writing code that lasts” … or writing code you won’t hate tomorrow.“Writing code that lasts” … or writing code you won’t hate tomorrow.
“Writing code that lasts” … or writing code you won’t hate tomorrow.
Rafael Dohms2.5K views
A Journey into your Lizard Brain - PHP Conference Brasil 2015 by Rafael Dohms
A Journey into your Lizard Brain - PHP Conference Brasil 2015A Journey into your Lizard Brain - PHP Conference Brasil 2015
A Journey into your Lizard Brain - PHP Conference Brasil 2015
Rafael Dohms2.2K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. by Rafael Dohms
“Writing code that lasts” … or writing code you won’t hate tomorrow.“Writing code that lasts” … or writing code you won’t hate tomorrow.
“Writing code that lasts” … or writing code you won’t hate tomorrow.
Rafael Dohms967 views
“Writing code that lasts” … or writing code you won’t hate tomorrow. by Rafael Dohms
“Writing code that lasts” … or writing code you won’t hate tomorrow.“Writing code that lasts” … or writing code you won’t hate tomorrow.
“Writing code that lasts” … or writing code you won’t hate tomorrow.
Rafael Dohms2.8K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. by Rafael Dohms
“Writing code that lasts” … or writing code you won’t hate tomorrow.“Writing code that lasts” … or writing code you won’t hate tomorrow.
“Writing code that lasts” … or writing code you won’t hate tomorrow.
Rafael Dohms3.4K views
Journey into your Lizard Brain - PHPJHB15 by Rafael Dohms
Journey into your Lizard Brain - PHPJHB15Journey into your Lizard Brain - PHPJHB15
Journey into your Lizard Brain - PHPJHB15
Rafael Dohms12.7K views
A journey into your Lizard Brain by Rafael Dohms
A journey into your Lizard BrainA journey into your Lizard Brain
A journey into your Lizard Brain
Rafael Dohms1.5K views
Writing Code That Lasts - Joomla!Dagen 2015 by Rafael Dohms
Writing Code That Lasts - Joomla!Dagen 2015Writing Code That Lasts - Joomla!Dagen 2015
Writing Code That Lasts - Joomla!Dagen 2015
Rafael Dohms31.6K views

Recently uploaded

Business Analyst Series 2023 - Week 4 Session 7 by
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
139 views31 slides
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueShapeBlue
203 views54 slides
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
135 views13 slides
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...ShapeBlue
126 views10 slides
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...ShapeBlue
180 views18 slides
Business Analyst Series 2023 - Week 4 Session 8 by
Business Analyst Series 2023 -  Week 4 Session 8Business Analyst Series 2023 -  Week 4 Session 8
Business Analyst Series 2023 - Week 4 Session 8DianaGray10
123 views13 slides

Recently uploaded(20)

Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10139 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue203 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue135 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue126 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue180 views
Business Analyst Series 2023 - Week 4 Session 8 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 8Business Analyst Series 2023 -  Week 4 Session 8
Business Analyst Series 2023 - Week 4 Session 8
DianaGray10123 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue166 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu423 views
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue132 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue218 views
Initiating and Advancing Your Strategic GIS Governance Strategy by Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software176 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue222 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue206 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue173 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue147 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue194 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc170 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays56 views

Composer the right way - DPC15