Drupal is a CMS that powers 2.3% of all websites and that, above all, enjoys the reputation of being one of the most powerful and scalable CMSs of them all – and rightly so. Drupal 8 will be out later this year and will focus mainly on its mobile device compatibility. The new Drupal will also (thankfully) lower the barriers for the users by including some great usability features such as in-place editing etc. All this can possibly snowball Drupal into the world’s most future-friendly solution, proving that Drupal is better than what we think.
Whatever may be Drupal’s future, there are some things to it that’ve always been cherished by one and all – things like Drupal modules. Over the last few years, many great Drupal modules have found their way to Drupal core, the latest example being Views. That said, did you ever ponder over how a Drupal module interacts with Drupal core? What is it that connects the two? Enter hooks.
What’re hooks all about?
The hook system of Drupal is quite interesting – one that you must understand, if you haven’t yet. It’s basically a PHP function that helps you extend the functionality of Drupal; it’s only after implementing a hook that a module is able to add its colors to Drupal. Hooks enable modules to add regions to the dashboard (hook_dashboard_regions), perform cleanup tasks (hook_exit), define content filters (hook_filter_info), control access to a node (hook_node_access) etc. There are around 350 hooks provided in Drupal core as of now, and modules create a hook of their own as well and almost all of them provide a comprehensive documentation as well.
The folks at Drupal sometimes define hooks as “event listeners”. For example, the event “performing cleanup tasks” triggers “hook_exit”, an action. In this way, hooks help Drupal core execute some task when it allows intervention from modules. Content Construction Kit, another famous Drupal module, creates hook_field_info to help modules create a new type of content.
Curious to know all the hook functions that are in Drupal core as of now? Here’s the list:
Source : http://api.drupal.org/api/drupal/includes!module.inc/group/hooks/4.7