Features: a better way to package stuff in Drupal
On Friday 19th of February, I gave a presentation to the North West Drupal User Group on the Features module for Drupal.
The Features module was created by Development Seed, and provides a powerful mechanism for packaging certain changes to a Drupal-based site that normally only exist in the database. By moving the locus of change from the database to code stored in files, these changes are made available to version control systems and are made much more portable between installations.
Features makes it easy to create chunks of functionality, packaging together related Views, Content Types, Contexts and more. As I mentioned on my personal blog in December, this can be very useful in deployment scenarios, but it also has the potential to allow developers (and power users) to create features that can be distributed just like existing Drupal modules. Features is powerful enough that it’s possible to use it to create something useful and powerful without writing any code.
There are, of course, still plenty of ‘gotchas’ and Features itself is still technically a beta release, likely to change and improve before a final 1.0 release. Without doubt, there are improvements to be made. But we’re using Features in production at PRWD, and we’re confident that it will be a big part of Drupal development for all of our new projects. More than that, I would expect that Features will grow in popularity to provide a platform for packaging functionality that becomes a standard part of any Drupal developer’s toolkit.
The slides from my presentation are visible below (from Slideshare):

