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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  4. 4
    axelerant.com
    Special Thanks to..

    View full-size slide

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

    View full-size slide

  6. 6
    axelerant.com
    Quick Introduction
    ● Why do we need it?
    ● How do we use it?

    View full-size slide

  7. 7
    axelerant.com
    Drupal Composer initiative
    Follow updates here: https://www.drupal.org/project/ideas/issues/2958021

    View full-size slide

  8. 8
    axelerant.com
    Composer scripts
    ● Define script in composer.json and run
    ● Helps to automate tasks
    ● Supports various events.

    View full-size slide

  9. 9
    axelerant.com
    Composer Scripts

    View full-size slide

  10. 10
    axelerant.com
    Composer Plugins
    ● Helps to overcome limitation of composer scripts
    ● Run independently - irrespective of root package
    ● Helps in creating distributable package

    View full-size slide

  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”

    View full-size slide

  12. 12
    axelerant.com
    Composer
    Plugins
    drupal-
    composer/drupal
    -scaffold

    View full-size slide

  13. 13
    axelerant.com
    Composer Plugins

    View full-size slide

  14. 14
    axelerant.com
    Patching
    ● Requirement to update core of system
    ● Bugs that are not merged

    View full-size slide

  15. 15
    axelerant.com
    Patching

    View full-size slide

  16. 16
    axelerant.com
    Keeping data up to date
    ● Pull and process remote data automatically
    ● Implement Composer Plugins

    View full-size slide

  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.

    View full-size slide

  18. 18
    axelerant.com
    Commit Hooks

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  21. 21
    axelerant.com

    View full-size slide

  22. 22
    axelerant.com
    Automatting project structure
    ● Composer helps to generate essential files and other code
    ● Use case : drupal-composer/drupal-project

    View full-size slide

  23. 23
    axelerant.com
    Automatting project structure

    View full-size slide

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

    View full-size slide

  25. 25
    axelerant.com
    Thank you..

    View full-size slide

  26. 26
    axelerant.com
    Become a Drupal contributor,
    Friday from 9 AM
    ● First timers workshop
    ● Mentored contribution
    ● General contribution
    26

    View full-size slide