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 Slide

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

    View Slide

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

    View Slide

  4. 4
    axelerant.com
    Special Thanks to..

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. 9
    axelerant.com
    Composer Scripts

    View 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 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 Slide

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

    View Slide

  13. 13
    axelerant.com
    Composer Plugins

    View Slide

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

    View Slide

  15. 15
    axelerant.com
    Patching

    View Slide

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

    View 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 Slide

  18. 18
    axelerant.com
    Commit Hooks

    View 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 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 Slide

  21. 21
    axelerant.com

    View Slide

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

    View Slide

  23. 23
    axelerant.com
    Automatting project structure

    View Slide

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

    View Slide

  25. 25
    axelerant.com
    Thank you..

    View Slide

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

    View Slide