Grokking Drupal: the project module for 4.6.x

Submitted by Frederic Marand on

2006-07-28 : this model is now obsolete. See the new model for the "summer 2006" version of Project.module.

UML class diagram thumbnail for Drupal project module 4.6.3The project module is at the heart of drupal.org. Here is a UML model of how it stores its data:

As of Drupal 4.6.3 and HEAD today, project.module uses a set of seven tables in addition to core tables node and users. This UML diagram shows how they are logically related together.

Note that, as in the other diagrams in my Grokking Drupal series, members pointing by a composition relation to the abstract class project_file_info are implemented in the physical data model as copies of the properties from the abstract class directly embedded in the source class. This representation is chosen to simplify reading and possibly encourage future refactoring.

This might be only short-term information, as work is apparently under way to create a new project module taking advantage of the features in the upcoming 4.7 release, and the data model may change.

Tagged for , , .

This was done using Model Maker, a UML modeler initially designed for Delphi, then extended to other languages, notably C#, and with which I'm very familiar, as I use it all the time with Delphi.

You might wonder why I use a Delphi/C# modeler for PHP: it's simply because, although it does not integrate with PHP, it's still by far the most convenient UML (and beyond) modeler I've found. It's a pity the publisher won't make a version for PHP, because I'd be sure to buy it.