--- title: Having Fun with Drupal 8, PHP libraries and the Drupal.org API description: A crash course in developing PHP packages and Drupal 8 modules, based on the Drupal.org API. speakerdeck: id: 6e42ae9620bb4e91b3955f8c30d66934 ratio: '1.77777777777778' image: url: /images/talks/having-fun-drupalorg-api.png width: 2000 height: 1125 type: image/png tags: - drupal - drupal-8 - drupalorg - php youtube: id: JyDjC7gGDpU events: - event: drupal_bristol date: 2018-04-18 joindin: https://joind.in/talk/14851 - event: drupalcamp_london_19 date: 2019-03-03 time: '12:05 - 12:50' --- A overview and demo of some of the open source projects that I’ve been working on lately that are based on information from the Drupal.org API, including a PHP library for the API itself as well as some Drupal 8 modules that use it. This session will cover various topics including: - Why would you want to separate your code into reusable packages - An overview of how to structure a PHP package (e.g. an API for interacting with Drupal.org) - How to add a PHP package as a dependency for a Drupal module using Composer - How to create routes and services, and use dependency injection in Drupal 8 - How to use Drupal to configure the packages - How to increase performance and reliability by using Drupal's cache system to store API results ## Links - [Drupal.org API library][2] - [Drupal.org API documentation][3] - [Laravel Collections][4] - Example module: [Drupal.org project statistics][5] - Example module: [Drupalversary][6] - Talk: [Using Laravel Collections outside Laravel][7] [0]: https://www.drupalbristol.org.uk [2]: https://github.com/opdavies/drupalorg-api-php [3]: https://www.drupal.org/drupalorg/docs/api [4]: https://laravel.com/docs/collections [5]: https://github.com/opdavies/drupal-module-drupalorg-project-statistics [6]: https://github.com/opdavies/drupal-module-drupalversary [7]: /talks/using-laravel-collections-outside-laravel/