This package is abandoned and no longer maintained. No replacement package was suggested.

An XML-based model (object / view / form) configuration library.

1.1.1 2017-02-07 13:59 UTC

This package is auto-updated.

Last update: 2020-07-17 06:05:58 UTC


Latest version on Packagist Software License Build Status Coverage Status SensioLabsInsight

An ORM agnostic model (object / view / form) configuration library.

Installation using Composer

Run the following command to add the package to the composer.json of your project:

$ composer require flexmodel/flexmodel


Load a FlexModel configuration file:


use FlexModel\FlexModel;

$domDocument = new DOMDocument('1.0', 'UTF-8');

$flexModel = new FlexModel();
$flexModel->load($domDocument, 'path/to/cache/directory');

The FlexModel XML format

A minimal FlexModel object definition consists of an object name and model definition with fields:

<?xml version='1.0' encoding='UTF-8'?>
    <object name='TheNameOfTheObject'>
            <field name='name_of_the_field' datatype='VARCHAR'/>

The object model configuration

The model is defined by one or more field nodes in the fields node of the object, like the example above shows. Each field has a datatype defined and a unique field name.

Field datatypes

These are the various datatypes that can be defined for a field:

  • DATE
  • FILE
  • HTML
  • JSON
  • TEXT
  • SET

Creating references between objects

References between objects are created by adding a field with an 'OBJECT.ObjectName' datatype.

In the example below you can see an object with the name 'ReferencingObject' with a field refering to an object with the name 'ReferencedObject:

<?xml version='1.0' encoding='UTF-8'?>
    <object name='ReferencingObject'>
            <field name='referenced_object' datatype='OBJECT.ReferencedObject'/>
    <object name='ReferencedObject'>
            <field name='some_other_field' datatype='VARCHAR'/>

Credits and acknowledgements

Also see the list of contributors who participated in this project.