Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lesser known perks of using composer

Mohit Aghera
September 12, 2018

Lesser known perks of using composer

Mohit Aghera

September 12, 2018
Tweet

More Decks by Mohit Aghera

Other Decks in Technology

Transcript

  1. 1 axelerant.com www.drupaleurope.org

  2. 2 axelerant.com Lesser known perks of using composer Drupal Europe

    2018
  3. 3 axelerant.com Drupal + Technology TRACK SUPPORTED BY

  4. 4 axelerant.com Special Thanks to..

  5. 5 axelerant.com Mohit Aghera Drupal developer @Axelerant Drupal.org: mohit_aghera Twitter:

    @mohit_rocks
  6. 6 axelerant.com Quick Introduction • Why do we need it?

    • How do we use it?
  7. 7 axelerant.com Drupal Composer initiative Follow updates here: https://www.drupal.org/project/ideas/issues/2958021

  8. 8 axelerant.com Composer scripts • Define script in composer.json and

    run • Helps to automate tasks • Supports various events.
  9. 9 axelerant.com Composer Scripts

  10. 10 axelerant.com Composer Plugins • Helps to overcome limitation of

    composer scripts • Run independently - irrespective of root package • Helps in creating distributable package
  11. 11 axelerant.com Composer Plugins { "name": "my/plugin-package", "type": "composer-plugin", "require":

    { "composer-plugin-api": "^1.1" }, "extra": { "class": "My\\Plugin" } } • “type” : “composer-plugin” • “extra” : Contains class name • Add special package called “composer-plugin-api”
  12. 12 axelerant.com Composer Plugins drupal- composer/drupal -scaffold

  13. 13 axelerant.com Composer Plugins

  14. 14 axelerant.com Patching • Requirement to update core of system

    • Bugs that are not merged
  15. 15 axelerant.com Patching

  16. 16 axelerant.com Keeping data up to date • Pull and

    process remote data automatically • Implement Composer Plugins
  17. 17 axelerant.com Keeping data up to date Benefits: • No

    need to have separate sync code • Helps to solve problems in continuous integration as data will already be there Limitations: • It is meant for retrieving and storing data - no live sync.
  18. 18 axelerant.com Commit Hooks

  19. 19 axelerant.com Commit Hooks • GIT hooks helps to enforce

    code quality • Ensure commit messages are proper • Coding standards validation • Sharing GIT hooks with composer has more advantages
  20. 20 axelerant.com Commit Hooks There are several libraries that supports

    this type of implementations: • https://github.com/sebastianfeldmann/captainhook • https://github.com/bruli/php-git-hooks • https://github.com/php-composter/php-composter • https://github.com/BrainMaestro/composer-git-hooks
  21. 21 axelerant.com

  22. 22 axelerant.com Automatting project structure • Composer helps to generate

    essential files and other code • Use case : drupal-composer/drupal-project
  23. 23 axelerant.com Automatting project structure

  24. 24 axelerant.com Example from “ScriptHandler.php”

  25. 25 axelerant.com Thank you..

  26. 26 axelerant.com Become a Drupal contributor, Friday from 9 AM

    • First timers workshop • Mentored contribution • General contribution 26