Upload
rafael-dohms
View
1.879
Download
3
Embed Size (px)
Citation preview
{ "require": { "monolog/monolog": “2.0” }}
{ "name": “monolog/monolog”
...}
./composer.json has been updatedLoading composer repositories with package informationUpdating 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 updatedLoading composer repositories with package informationUpdating 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 updatedLoading composer repositories with package informationUpdating 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 updatedLoading composer repositories with package informationUpdating 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 fileGenerating autoload files
___~1.1
photo: 18millionpixels
discovery source
installation
Packagist
"
Vendor Folder
$
Repository
#
composercomposer.json!
composer.lock!
2 139 872 458two billion, one hundred and thirty-nine million, eight hundred and seventy-two thousand, four
hundred and fifty-eight .
+
$ composer self-update
Production
$ composer self-update --snapshot
Development
$ composer self-update --preview
CI / Build
Install instructions
1. Edit your composer.json2. Add `package/vendor`3. Run `composer update`
or was that install? err… i can’t remember.
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
API / BC Breaks New Features Bug Fixes
Yo @rdohms, I’m really happy for you and
I’m gonna let you finish, but the tilde operator is
totally old news.
"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
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 installcomposer update
Your application
$
Public Repository
#
Library Consumer Install or update?
composer.lock!
read
composer installcomposer update
Your application
$
Public Repository
#
Library Consumer Install or update?
composer.lock!
read grab version
composer installcomposer update
Your application
$
Public Repository
#
Library Consumer Install or update?
composer.lock!
read grab version
check latest compatible release
composer installcomposer update
Your application
$
Public Repository
#
Library Consumer Install or update?
composer.lock!
read grab version
check latest compatible release
update
composer installcomposer update
Your application
$
Public Repository
#
Library Consumer Install or update?
composer.lock!
read grab version
check latest compatible release
update
composer installcomposer update
no lock file? composer update
Library Consumer Install or update?
commit your lock file*
* always! ignore what Marco says.** we will discuss that over beer.
$ composer why-not <package>
doctrine/doctrine-bundle 1.6.2 requires symfony/framework-bundle (~2.3|~3.0)doctrine/doctrine-cache-bundle 1.3.0 requires symfony/doctrine-bridge (~2.2|~3.0)doctrine/doctrine-fixtures-bundle 2.3.0 requires symfony/doctrine-bridge (~2.3|~3.0)doctrine/doctrine-migrations-bundle dev-master requires symfony/framework-bundle (~2.3|~3.0)doctrine/migrations dev-master requires symfony/yaml (~2.3|~3.0)doctrine/orm v2.5.4 requires symfony/console (~2.5|~3.0)friendsofsymfony/rest-bundle 1.7.7 requires symfony/http-kernel (^2.3.24|~3.0)incenteev/composer-parameter-handler v2.1.2 requires symfony/yaml (~2.3|~3.0)jms/serializer-bundle 1.1.0 requires symfony/framework-bundle (~2.3|~3.0)knplabs/knp-paginator-bundle 2.5.1 requires symfony/framework-bundle (~2.3|~3.0)kriswallsmith/assetic v1.3.2 requires symfony/process (~2.1|~3.0)
Tip
since beta1
$ composer outdated
composer/composer 1.0.3 1.1.0 filp/whoops 2.1.0 2.1.2 justinrainbow/json-schema 1.6.1 2.0.3 nikic/fast-route v0.7.0 v1.0.0 oscarotero/psr7-middlewares v3.14.3 v3.15.1
Tip
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 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
,
- Install same versions
- 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
,
- Downloads distribution packages
- Can use local cache for previously downloaded
- 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
,
- 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
,
- Generates classmap from PSR-0/4 autoloaders
- Speeds up autoloading
Library Consumer Licensing
$ composer licenses
Name: __root__Version: 1.0.0Licenses: noneDependencies:
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 Simulating Environments
Tip
Production Server
.
Development Server
.PHP 7.0
PHP 5.6
Library Consumer Simulating Environments
"config": { "platform": { "php": “5.6.2”, “ext-mongodb”: “1.1” } },
Tip
Production Server
.
Development Server
.PHP 7.0
PHP 5.6
composer Packagist
"
Your application
$
Public Repository
#
Library Consumer Private Packages and Proxy
composer
Packagist
"
Your application
$
Public Repository
#
Satis / Toran
"
Private Repository
/
proxy
Library Consumer Private Packages and Proxy
Library Consumer Private Packages and Proxy
toranproxy.comprivate repos, automatic packagist proxy
and support composer development
Javascript only Developer
Library Consumer Tooling
0 my-js-library
! composer.json
! package.json
! bower.json
1
Javascript only Developer
Library Consumer Tooling
0 my-js-library
! composer.json
! package.json
! bower.json
! .gemspec
1
Javascript only Developer
Library Consumer Tooling
0 my-js-library
! composer.json
! package.json
! bower.json
! .gemspec
1
2
2
Library Consumer pickle!
$ pickle install memcache
https://wiki.php.net/rfc/picklehttps://github.com/FriendsOfPHP/pickle
Thank you.any questions?
3 http://slides.doh.ms
4 http://doh.ms
5 @rdohms
https://joind.in/talk/cc531