Ezra B. Gildesgame from Growing Venture Solutions presented an Introduction to Module Development. (Slides)
While I was already fairly familiar with the basics of Drupal module development, it provided a nice refresher and some insight into how they handle things. It was also interesting to see Ezra using Eclipse for module development -- I've always had mixed feelings about Eclipse and PHP.
A couple of new things I learned:
- In devel views, you may now see "und" as an array index: this indicates undefined localization, as given by the Drupal constant LANGUAGE_NONE.
- Remember to clear the cache when defining new hooks (not really new, but worth repeating)
- func_get_args() and debug_backtrace() are both very useful PHP functions for debugging, especially when combined with dpm()
- dpm() uses Krumo, which is a pretty awesome PHP library
- Like so many other things in Drupal, modules have weights in the system table -> weights define execution order (Though well-developed modules should work under any order.)
- Use proper APIs rather than querying the DB directly if you can. Some modules add extra information to entities, etc., that you will miss by querying the DB directly.
- Don't hack core. (Also not new, but also worth repeating)
All in all, Ezra put together a great presentation that was perfect for my first "regular" session of Drupalcon Chicago.