[development] module_exists vs. functions_exists?

Greg Knaddison - GVS Greg at GrowingVentureSolutions.com
Sun Jun 22 21:36:46 UTC 2008


In building some contrib modules that interact with other modules I
often find myself writing something like:

if (module_exists('module_name')) {
  $foo = module_name_api_function($bar);

This seems to be pretty common across core and contrib.  I'd even call
it standard.

Another option would be:

if (function_exists('module_name_api_function')) {
  $foo = module_name_api_function($bar);

The benefit of the second format is that if/when module_name's
maintainer decides to rewrite module_name and change all their
functions then my module may simply stop interacting with it rather
than failing on a function not found error.

The benefit of the first format is that it fails quickly and is likely
to generate a bug report with a very clear solution.



Greg Knaddison
Denver, CO | http://knaddison.com | 303-800-5623
Growing Venture Solutions, LLC | http://growingventuresolutions.com

More information about the development mailing list