sifbuilder 1.10 introduces the automatic generation of drupal modules based on the xml representation of the target module relational data model. The sifmoduler module includes the Smarty templates files that generate the target files using the information passed in a file containing the xml representation of the target module relational data model.
sifbuilder, through invokation of the drupal sifmoduler module functions, generates the .module and .install files. For each entity, it generates the .dao and .controlapi files. The module .module file includes the module hooks and the action router based on the menu hook. The entity .controlapi file contains the control and view functions including add, edit, delete, list and delete multiple records. The entity .dao file contains the select, insert, update and delete interface to the entity model.
The sifmoduler module carries out three basic actions: processes the xml module definition file, generates the sql ddl statements and creates the module files based on the Smarty templates. The libraries supporting these functions are exposed by the dependency sifclasses drupal module that is invoked by the sifmoduler, in line with an architecture based on a basic bootstrap providing discovery and loading mechanisms and functions offered by self contained modules aware of the installation and communication logic.
The sample resulting _sifgroups module may be created by
> php sifcmd.php b --sifpacksdir=../sifbuilder_local/packages --sifnetconfigfile=../sifbuilder_local/sifnet_config.php --sifnetsite=sbd_at_localhost drupal5_smod_sifmoduler
It is also created within the drupal sif_sif profile.
>php sifcmd.php b --sifpacksdir=../sifbuilder_local/packages
-sifnetconfigfile=../sifbuilder_local/sifnet_config.php --sifnetsite=sbd_at_localhost --sifnethost=localhost --siburi=./sibs/sib_drupal5_sif_sif.xml -x -f -v
It can be seen at the sif site.
Beyond the input data model, the generative spirit of sifmoduler is transmitted to the generated modules and it will be possible for the admin to create other drupal modules from any module created in that way.

