June 17, 2014
What else do I need to learn to get ready for Drupal 8 ?
There are some other concepts and components not part of Symfony Framework but related to modern PHP development you will be using when working with Drupal 8.
- Composer: Tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you.
- Namespaces: A way of encapsulating classes. Bringing the ability to organize and group related classes and also to avoid name collision.
- Services: PHP object that performs some sort of "global" task.
- Service Container: Also known as a dependency injection container, it is simply a PHP object that manages the instantiation of declared services.
- Controllers: A controller is a PHP method that takes information from the HTTP request and constructs and returns an HTTP response.
- Annotations: An annotation is metadata attached to your code using "docblocks" that can be read at runtime.
- Guzzle: HTTP client for PHP. Makes building and consuming web services easy.
- Assetic: Asset management framework for PHP.
- Twig: Template engine for PHP. Allows you to write easy-to-read templates that are more friendly for web designers and, in several ways, more powerful than PHP templates.
It seems like a lot of material to learn between the Symfony Components mentioned on a previous post, concepts and components not part of Symfony mentioned above, and a whole new way of doing PHP. But, didn't you struggle before learning about the hook system, render array architecture, preprocess functions and many different Drupalisms before? Didn't it seem at the time that Drupal 7 was harder to learn than 6 or 5?
Drupal 8 is not harder to learn than previous versions of the CMS, it's just different. I may sound too optimistic but I will say Drupal 8 is even easier to learn for any developer and will be easy for a developer with previous Drupal experience. It will help if you are willing to leave behind most of the Drupalisms you learned during the past years as a Drupal developer and embrace the evolution of PHP development and modern frameworks. While learning Drupal 8 you will be applying the paradigm “Learn once, use anywhere.” It means the knowledge you acquire will be easy to transport and apply on other frameworks such as Symfony, Silex, Laravel and even frameworks from other languages such as Django.