Dev Tools is a collection of PHP classes and functions which help with and simplify Drupal module development. While most components don't have (or need) front-end interfaces, some do provide configuration forms & GUI tools. See readme.txt for use instructions.

Release Status

There are currently no plans to ever release a 'stable' (in Drupal terms) version of the module, but rather always keep the code in the dev releases. As mentioned, Dev Tools is not meant to be used by anyone other than developers, and having release versions for a module that has no specific feature requirements doesn't make much sense, either.


The module's pieces of functionality are broken down into 'components,' which can be loaded individually, or all at once. Currently available components are listed below.

  • ajax: adds ajax_command_callback() and ajax_command_remove_class() to Drupal's AJAX commands
  • array: adds flatten_tree() and array_flat_divergence()
  • batch: provides class for simplified Batch operations (work in progress)
  • block: defines block_render() for getting block content
  • cdn: adds improved file touching interface; allows for invalidation of files on CloudFront;
  • date: defines floor_date(), floor_timestamp(), ceil_date() and ceil_timestamp()
  • debug: debugging helper; defines print_rr(), dsmm() & perm_debug() for formatting debug output
  • dialog: functionality for processing forms (with state / multi-page support) in dialogs
  • display_suite: simplified programmatic creation of display suite fields
  • entity: registers the entity_type and entity_id properties on all entities at load-time; defines entity_save_field() for saving entitiy fields (much faster than doing a full entity save)
  • field: defines a series of field-related helper functions
  • form: defines form_hide(), form_get_op(), element_maxlength(), form_set_defaults(), form_prepare_error_text(), form_check_fields()
  • http: defines parse_raw_post()
  • jquery: adds the classAdded and classRemoved jQuery event handlers
  • js_suppress_alert: overrides standard JavaScript alert() behavior to send the text to console.log(), instead
  • js_watch_value: provides JS function for watching specified value and calling a callback when the value is changed
  • state_required: workaround for bug in JS states:
  • string: defines truncate(), filter_text() and input_default_full_html()
  • taxonomy: defines tid_merge_children()
  • ui: defines zebra(), an experimental zebra-class generator
  • views: defines build_views_block() and render_views_block()

Planned feature/component development

I will be adding functionality which I have developed and find useful enough to be re-used from project to project; this will include tools for contributed modules such as Display Suite and Relation, as well as miscellaneous classes.

If you have 'miscellaneous' helper code which you think would be useful to other developers, please file an issue and attach the code; I'd be happy to review and add it to Dev Tools.

Relation to Devel module?

Despide similar names, the two modules share little to nothing in common. Devel is primarily meant as a tool used during development (and turned off in production environments). Dev Tools is meant to make development simpler, and is intended to be used in production.

Project Information