I spent a long time on the fence about buying John VanDyk’s Pro Drupal Development because there’s so much documentation online and because I’m a cheap bastard. By about the middle of chapter 2, I realized what a stupid decision that was. I could have saved myself sooooo much time if I had just bought the damn thing when it first came out!
There are, I would say, two good reasons not to buy Pro Drupal Development:
- You are not a Drupal developer.
- You are such a Drupal ninja already that VanDyk mentions you in the acknowledgements.
If on the otherhand, you build Drupal sites and do any mucking about in the internals, this book will probably teach you a lot and, if it doesn’t do that, it is still probably a worthwhile reference. In my case, I learned a lot. It was a bit humbling actually, but damn useful.
I’ve tried to read through the forms API and the documentation for it, but it never quite came together for me and I found reading it online wearisome to be honest, in a way that I never felt when I was learning PHP and spending a lot of time with the online PHP manual. I suspect that’s because PHP ultimately has a lot of overlap with C++ and other programming languages, so I was mostly skimming for syntax, but Drupal is a complex system with an architecture that was utterly foreign to me with its massive collection of hooks, callbacks, templates and so forth. So how does hook_nodeapi() relate to theme_preprocess_node() and node.tpl.php? And that’s an easy one. Throw in the menu and forms APIs, filters and so on and it just gets hard to get started on really putting it together.
I’ve hacked together some modules and done quite a bit of themeing, but I never really took the time to really understand the underlying Drupal architecture. By the time I was a few chapters into Pro Drupal Development, I was already seeing better ways to do some things than my old bad “make it work” habits had taught me. Furthermore, with the excellent index in the book, when I came across roadblocks I could often find a solution quickly that allowed me to move on without having to sift through the documentation online.
Most importantly though, in almost every case, VanDyk’s explanations are just so much better than I’ve found elsewhere. I have no idea how talented a coder he is, but he definitely has real skill as a writer and a teacher. So many things that seemed arcane to me from other documentation, we’re absolutely clear and obvious in his able hands. I suspect some of that is because of good editing (not to be underestimated: it’s rare for a film to win the Best Picture Oscar without also winning the Oscar for Best Editing), and I find it much more comfortable to read print rather than onscreen, especially conceptually intricate material. None of that, however, takes away from VanDyk’s skill and my gratitude that he and others involved in the book put the time in to open up Drupal development to the rest of us.
If I have one regret about the book, it’s this: it covers only the core system. I understand the rationale behind that. With thousands, of Drupal modules, you simply can’t go down that road. Still, I think that the Content Construction Kit and Views have really become “pseudo-core” in that complex Drupal sites commonly use them and they are increasingly being folded into Drupal core. These modules are in and of themselves pretty complex, especially Views, and I would love to see a book that covers Views in the detail that VanDyk covers the core (and perhaps one of the other Drupal books does, I just don’t know about it yet). That said, having gotten a much better understanding of core gave me pretty much all the tools I needed to embed Views into my site in the way I wanted, and yet still have everything get themed and hooked properly and without using the Panels module, another complex module which, while powerful and useful, adds a lot of overhead for the simple task I needed (I actually originally built my “proof of concept” site using Panels, but realized after reading Pro Drupal Development that I could simply achieve what I wanted by making small changes in templates and template.php without weighing the site down with yet another massive module).
So in short: Thanks John! Now with take the massive riches flowing to you from all six of my readers, one of whom might actually buy your book, go write another one.