3rd Party PHP Libraries used AS-IS in Drupal 8

Drupal 8 has always considered Flexibility, Standardization, Performance, Mobile First Approach and efficient Enterprise level adaptability at its core. Drupal 8 has adapted various 3rd party PHP libraries which are used AS-IS for implementation and most importantly are a part its CORE.

Here are those 3rd party PHP libraries used AS-IS in Drupal 8:

01. Assetic

Ref URL: https://github.com/kriswallsmith/assetic

Assetic is an Asset Management framework originally based on Python's Webassets library. 

  • Asset of Drupal site can be considered as Style Sheets, Javascripts, Images, Audios, Videos and Metadata.
  • Such wide variety of assets needs proper ordering.
  • Filterable content contained in these assets often needs to be loaded and dumped on-the-fly.
  • It has Twig extension too. 

Simpler Approach

We can Build, Dump and Output in php source files and reference directly in Drupal 8's Twig template files.

Flexible Approach

Declare assets in Twig templates (on-the-fly) and use loader to extract, Dump and output the same on-demand. 

02. Composer

Ref URL - https://getcomposer.org

Composer Node's NPM and Ruby's Bundler. Particularly it has striking similarities with Bundler.

  • It needs PHP 5.3.2 + version.
  • Composer comes as an executable PHAR archive hence [extension=phar.so] setting needs to be uncommented from php.ini
  • Composer is as a Dependency Management tool for PHP applications. 
  • Composer lets you to declare the libraries along with the specific versions (on which application depends) and actually installs the same.
  • This should not be mistaken as Package Management tool.
  • One of the example usage of Composer could be installation of Compass for handling SCSS compilation in Drupal 8 themes (it coulld be used for any PHP applications). 

03. Doctrine

Ref URL: http://www.doctrine-project.org/

Doctrine is based on Hibernet ORM and has brought its benefits for PHP language.

  • Doctrine clubs together several PHP libraries primarily used for Database Storage and Object Mapping. 
  • Drupal 8 is using Annotation part of Doctrine. It helps in Entity Mapping to Database Schema. 

04. EasyRDF

Ref URL: http://www.easyrdf.org/

EasyRDF is a PHP library which makes it easier to Compose and Produce Resource Description Framework (RDF).

  • Drupal 8 is using easyRDF for producing Metadata Data Model in markups.

05. Guzzle

Ref URL: http://docs.guzzlephp.org/en/latest/

Guzze is a PHP HTTP client library which helps to send HTTP requests and trivial to integrate with web services.

  • Drupal 8 contains everything that we need for web services.
  • Drupal 8 utilizes Guzzle's capability to to make requests to REST service calls. 
  • This means Drupal 8 can easily interact with 3rd party REST based services with its inherent capability and without a need to install any new libraries or modules.

06. PHPUnit

Ref URL: https://phpunit.de/

PHPUnit doesn't really need any introduction for PHP developers which is a programmer oriented testing framework.

  • Drupal 8 is using PHPUnit - Programmer Oriented Testing framework to streamline the validation of Drupal Coding standards.
  • It's inclusion in Drupal 8 core simplies the assurance of neat, clean and process driven coding by developers.

07. PSR-3 Logging

Ref URL: http://www.php-fig.org/psr/psr-3/

PSR-3 facilitates application level simple and universal logging.

  • Drupal 8 has replaced WATCHDOG with PSR3-3 logging in order bring application level universal logging system.
  • It eventually simplifies and standardize the way of logging for any kind of potential problems.