While studying for the Acquia Developer Certification exam and working on many Drupal sites I have come across a collection of articles and resources which have improved my development and the way I approach solutions in Drupal. Even if you are an experienced Drupal developer or themer you will learn something that you have been doing wrong or that you can improve. This is in no way an exhaustive list of the best resources, but it is a good start for anyone.

Theming / Front End Development

The Definitive Guide to Drupal 7 (Chapters 15 & 16)

These two chapters of The Definitive Guide to Drupal 7 by Jacine Luisi will arm any Drupal themer (or developer) with all of the tools they will need to theme a site responsibly. It focuses on proper ways to include JS and CSS, use the Render API, theme forms, and leverage theme functions. Reading these two chapters will make you cringe every time you see anything hard coded in a tpl.php file. This book can be found on Amazon or by using a creative Google search ;).

The Drupal JavaScript API

Learn how JavaScript is implemented in Drupal, how to use the Drupal object, and add your own JS calls using Drupal.behaviors.

Using the theme layer

This Drupal documentation helps you to fully understand how template suggestions work, how you can provide your own, and how dynamic theming works. If you are a backend developer this will help you to create custom modules that themers can extend without hacking your module. If you are the themer this will help you to modify output created by modules.

Backend Development

The Drupal APIs

The following APIs provided by Drupal will help make your custom developments more advanced without much effort. These APIs are a great asset to your developer toolbox.

  • Batch API - How to do a lot of stuff all at once without timing out and letting your users know that the site is not frozen.
  • Cache API - Caching will allow you to compute / build things only once and use them over and over.
  • Entity API- Create your own entities! Everything doesn’t have to be a node.
  • Field API - Create your own field types and widgets.
  • File API - These functions will help you to manage files in Drupal like a pro.
  • Cron API - Using the CRON API will help you to perform timely tasks in the background to speed up your site.
  • The Database: Static Queries and Dynamic Queries - Accessing the database using Drupal's functions will allow your modules / site to run on MySql, PosgreSQL, SQLite, Microsoft SQL Server, Oracle, and MongoDB without any modification to your code.

Using placeholders in t() and l()

One of the first things that Drupal developers learn is that when printing text and links they should use Drupal t() and l() functions. This allows support for multilingual sites. It should also be stressed that how you include placeholders in these functions is important.

Writing Secure Code

Drupal provides many tools to help you write secure code. This section of Drupal's documentation does a very good job at outlining the functions and methodologies to ensure that your sites are secure.

Drupal Coding for Optimal Performance

This chapter of O'Reilly's High Performance Drupal outlines tools and methodologies to help better your code and ensure your module is not the bottleneck of the site. This chapter made me analyze the way I write code and consider performance implications.

Bonus: Why You're a Bad PHP Programmer

Go from Reading List for Drupal Devs (and Themers) to the Blog

Return to the Unleashed Technologies Home Page