Sylvain Rayé - Meet Magento Italy 20141
Sylvain Rayé - Meet Magento Italy 20142
ABOUT SYLVAIN RAYÉ
• Founder / Senior & Certified Magento Developer by Diglin GmbH
• CTO by rissip GmbH
• Board member of Firegento Association (German Magento community)
• Organizer Hackathons / Meet Magento Switzerland (24.10.2014)
Sylvain Rayé - Meet Magento Italy 20143
COMPOSERhttp://getcomposer.org
http://packagist.org
Sylvain Rayé - Meet Magento Italy 2014
• Manage dependencies
• Code reuse
• Code Sharing
• Easy to clean uninstall
• Easy upgrade
• Works with GIT/SVN or TAR or filesystem
• Multiplatform (Windows, *nix, OSX)
X
COMPOSER ?
Sylvain Rayé - Meet Magento Italy 2014X
COMPOSERcurl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Sylvain Rayé - Meet Magento Italy 20144
COMPOSER.JSON
Sylvain Rayé - Meet Magento Italy 2014
• ..
5
COMPOSER.JSON
Project / Dependency levels
Sylvain Rayé - Meet Magento Italy 20146
COMPOSER PHARinit
search require validate
install update
show help
…
Sylvain Rayé - Meet Magento Italy 20147
COMPOSER INSTALL / UPDATE├── app ├── src ├── web ├── … ├── composer.json ├── composer.lock └── vendor ├── composer ├── autoload.php ├── bin ├── mongo ├── doctrine ├── …
Sylvain Rayé - Meet Magento Italy 20148
MAGENTO MODULES├── app │ ├── code │ │ ├── community │ │ │ ├── NAMESPACE │ │ │ │ ├── MODULENAME │ │ │ │ │ ├── Helper │ │ │ │ │ ├── Model │ │ │ │ │ └── … │ ├── design │ │ ├── frontend │ │ │ └── base │ │ │ ├── default │ │ │ │ ├── layout │ │ │ │ │ ├── modulename.xml │ │ │ │ └── template │ │ │ │ ├── modulename │ ├── etc │ │ └── modules │ │ ├── Namespace_Modulename.xml │ └── locale ├── js ├── skin └── …
Magento 1
Sylvain Rayé - Meet Magento Italy 20148
MAGENTO MODULES
├── app │ ├── code │ │ ├── NAMESPACE │ │ │ ├── MODULENAME │ │ │ │ ├── Block │ │ │ │ ├── Controller │ │ │ │ ├── Helper │ │ │ │ ├── Model │ │ │ │ ├── etc │ │ │ │ ├── i18n │ │ │ │ ├── views │ │ │ │ └── … ├── lib ├── pub └── …
Magento 2
├── app │ ├── code │ │ ├── community │ │ │ ├── NAMESPACE │ │ │ │ ├── MODULENAME │ │ │ │ │ ├── Helper │ │ │ │ │ ├── Model │ │ │ │ │ └── … │ ├── design │ │ ├── frontend │ │ │ └── base │ │ │ ├── default │ │ │ │ ├── layout │ │ │ │ │ ├── modulename.xml │ │ │ │ └── template │ │ │ │ ├── modulename │ ├── etc │ │ └── modules │ │ ├── Namespace_Modulename.xml │ └── locale ├── js ├── skin └── …
Magento 1
Sylvain Rayé - Meet Magento Italy 20149
http://packages.firegento.com
https://github.com/magento-hackathon/magento-composer-installer
MAGENTO COMPOSER
Sylvain Rayé - Meet Magento Italy 201410
PACKAGES.FIREGENTO.COM
Sylvain Rayé - Meet Magento Italy 201411
COMPOSER.JSONProject level
{ "require": { "magento-hackathon/magento-composer-installer": "*", … }, "repositories": [ { "type": "vcs", "url": "https://github.com/magento-hackathon/magento-composer-installer" }, … ], "extra": { "magento-root-dir": "./src", "magento-deploystrategy": "copy", "magento-force" : "override", … } }
Sylvain Rayé - Meet Magento Italy 201412
COMPOSER.JSONProject level
{ "require": { "magento-hackathon/magento-composer-installer": "*", "connect20/mage_all_latest": "1.8.1.0", "diglin/diglin_username": "2.*" }, "repositories": [ { "type": "vcs", "url": "https://github.com/magento-hackathon/magento-composer-installer" }, { "type": "composer", "url": "http://packages.firegento.com" } ], "extra": { "magento-root-dir": "./src", "magento-deploystrategy": "copy", "magento-force" : "override" } }
Sylvain Rayé - Meet Magento Italy 201413
MAGENTO COMPOSER OPTIONSUnder extra option in composer.json
‘magento-root-dir’: ‘../src’ ‘modman-root-dir’: ‘.modman’ ‘magento-force’: true ‘path-mapping-translations’: {…} ‘magento-map-overwrite’: {…} ‘auto-append-gitignore’: true ‘magento-deploy-ignore’: {…} ‘magento-deploy-sort-priority’: {…} ‘magento-deploystrategy’: ‘copy’ ‘magento-deploystrategy-overwrite’: {…} (beta)
Sylvain Rayé - Meet Magento Italy 201414
DEPLOY STRATEGY
NONE COPY
SYMLINK LINK (hardlink)
Sylvain Rayé - Meet Magento Italy 201415
PUBLISH YOUR EXTENSION
Sylvain Rayé - Meet Magento Italy 201416
YOUR OWN PACKAGE REPOSITORY
SATIS PACKAGIST
Sylvain Rayé - Meet Magento Italy 201417
PUBLISH YOUR EXTENSION
Sylvain Rayé - Meet Magento Italy 201417
PUBLISH YOUR EXTENSION
Sylvain Rayé - Meet Magento Italy 201418
PUBLISH YOUR EXTENSIONComposer.json on dependency level
Sylvain Rayé - Meet Magento Italy 201418
PUBLISH YOUR EXTENSIONComposer.json on dependency level
New type
Sylvain Rayé - Meet Magento Italy 201418
PUBLISH YOUR EXTENSIONComposer.json on dependency level
New type
Dependencies
Sylvain Rayé - Meet Magento Italy 201419
PUBLISH YOUR EXTENSION
MAP in composer.json PACKAGE.XML MODMAN FILE
Mapping
Sylvain Rayé - Meet Magento Italy 201420
PUBLISH YOUR EXTENSIONModman file
Sylvain Rayé - Meet Magento Italy 201421
PUBLISH YOUR EXTENSION• Execute "git tag -a 1.0.0" & "git push --tags"
• Fork the https://github.com/magento-hackathon/composer-repository
• Edit satis.json
!
!
• Execute "composer validate"
• Commit & Pull request to the original repository
Sylvain Rayé - Meet Magento Italy 201421
PUBLISH YOUR EXTENSION• Execute "git tag -a 1.0.0" & "git push --tags"
• Fork the https://github.com/magento-hackathon/composer-repository
• Edit satis.json
!
!
• Execute "composer validate"
• Commit & Pull request to the original repository
Sylvain Rayé - Meet Magento Italy 201422
PEAR IS DEAD! HOORAY TO COMPOSER
Sylvain Rayé - Meet Magento Italy 2014X
LINKS• https://github.com/composer/
• http://packagist.org
• https://github.com/magento-hackathon/magento-composer-installer
• https://github.com/magento-hackathon/composer-command-integrator/
• http://packages.firegento.com
• https://github.com/magento-hackathon/composer-repository
• https://plus.google.com/u/0/events/cp21bnv8vnahprcbm4c5k4laceg - nice talk about composer strategies
• http://magebase.com/magento-tutorials/composer-with-magento/ - tutorial from Vinai