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:
Ref URL: https://github.com/kriswallsmith/assetic
Assetic is an Asset Management framework originally based on Python's Webassets library.
- 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.
We can Build, Dump and Output in php source files and reference directly in Drupal 8's Twig template files.
Declare assets in Twig templates (on-the-fly) and use loader to extract, Dump and output the same on-demand.
Ref URL - https://getcomposer.org
- 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).
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.
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.
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.
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.