Manage magento dependencies with composer

  • 548 views
Uploaded on

If you have to deal with several Magento projects, you probably know how it is painful to manage dependencies and getting and installing extensions for your projects. Composer is a solution largely …

If you have to deal with several Magento projects, you probably know how it is painful to manage dependencies and getting and installing extensions for your projects. Composer is a solution largely used in PHP world but not very known in the Magento community. This tool can helps you to improve your productivity and make your life easier if it’s used correctly… This is what we will see together.
Main message: The Magento composer project is the perfect example which shows that the community can bring great enhancement to Magento projects.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
548
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
13
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Sylvain Rayé - Meet Magento Italy 20141
  • 2. 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)
  • 3. Sylvain Rayé - Meet Magento Italy 20143 COMPOSER http://getcomposer.org http://packagist.org
  • 4. Sylvain Rayé - Meet Magento Italy 2014 • Manage dependencies • Code reuse • Code Sharing • Easy to clean uninstall • Easy upgrade • Works with GIT/SVN orTAR or filesystem • Multiplatform (Windows, *nix, OSX) X COMPOSER ?
  • 5. Sylvain Rayé - Meet Magento Italy 2014X COMPOSER curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
  • 6. Sylvain Rayé - Meet Magento Italy 20144 COMPOSER.JSON
  • 7. Sylvain Rayé - Meet Magento Italy 2014 • .. 5 COMPOSER.JSON Project / Dependency levels
  • 8. Sylvain Rayé - Meet Magento Italy 20146 COMPOSER PHAR init search require validate install update show help …
  • 9. Sylvain Rayé - Meet Magento Italy 20147 COMPOSER INSTALL / UPDATE ├── app ├── src ├── web ├── … ├── composer.json ├── composer.lock └── vendor ├── composer ├── autoload.php ├── bin ├── mongo ├── doctrine ├── …
  • 10. 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
  • 11. 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
  • 12. Sylvain Rayé - Meet Magento Italy 20149 http://packages.firegento.com https://github.com/magento-hackathon/magento- composer-installer MAGENTO COMPOSER
  • 13. Sylvain Rayé - Meet Magento Italy 201410 PACKAGES.FIREGENTO.COM
  • 14. Sylvain Rayé - Meet Magento Italy 201411 COMPOSER.JSON Project 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", … } }
  • 15. Sylvain Rayé - Meet Magento Italy 201412 COMPOSER.JSON Project 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" } }
  • 16. Sylvain Rayé - Meet Magento Italy 201413 MAGENTO COMPOSER OPTIONS Under 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)
  • 17. Sylvain Rayé - Meet Magento Italy 201414 DEPLOY STRATEGY NONE COPY SYMLINK LINK (hardlink)
  • 18. Sylvain Rayé - Meet Magento Italy 201415 PUBLISH YOUR EXTENSION
  • 19. Sylvain Rayé - Meet Magento Italy 201416 YOUR OWN PACKAGE REPOSITORY SATIS PACKAGIST
  • 20. Sylvain Rayé - Meet Magento Italy 201417 PUBLISH YOUR EXTENSION
  • 21. Sylvain Rayé - Meet Magento Italy 201417 PUBLISH YOUR EXTENSION
  • 22. Sylvain Rayé - Meet Magento Italy 201418 PUBLISH YOUR EXTENSION Composer.json on dependency level
  • 23. Sylvain Rayé - Meet Magento Italy 201418 PUBLISH YOUR EXTENSION Composer.json on dependency level New type
  • 24. Sylvain Rayé - Meet Magento Italy 201418 PUBLISH YOUR EXTENSION Composer.json on dependency level New type Dependencies
  • 25. Sylvain Rayé - Meet Magento Italy 201419 PUBLISH YOUR EXTENSION MAP in composer.json PACKAGE.XML MODMAN FILE Mapping
  • 26. Sylvain Rayé - Meet Magento Italy 201420 PUBLISH YOUR EXTENSION Modman file
  • 27. 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
  • 28. 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
  • 29. Sylvain Rayé - Meet Magento Italy 201422 PEAR IS DEAD! HOORAY TO COMPOSER
  • 30. 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 fromVinai