An ORM agnostic model (object / view / form) configuration library.
Run the following command to add the package to the composer.json of your project:
$ composer require flexmodel/flexmodelLoad a FlexModel configuration file:
<?php
use FlexModel\FlexModel;
$domDocument = new DOMDocument('1.0', 'UTF-8');
$domDocument->load('flexmodel.xml');
$flexModel = new FlexModel();
$flexModel->load($domDocument, 'path/to/cache/directory');A minimal FlexModel object definition consists of an object name and model definition with fields:
<?xml version='1.0' encoding='UTF-8'?>
<flexmodel>
<object name='TheNameOfTheObject'>
<fields>
<field name='name_of_the_field' datatype='VARCHAR'/>
</fields>
</object>
</flexmodel>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.
These are the various datatypes that can be defined for a field:
- BOOLEAN
- DATE
- DATEINTERVAL
- DATETIME
- DECIMAL
- FILE
- FLOAT
- HTML
- INTEGER
- JSON
- TEXT
- SET
- VARCHAR
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'?>
<flexmodel>
<object name='ReferencingObject'>
<fields>
<field name='referenced_object' datatype='OBJECT.ReferencedObject'/>
</fields>
</object>
<object name='ReferencedObject'>
<fields>
<field name='some_other_field' datatype='VARCHAR'/>
</fields>
</object>
</flexmodel>Also see the list of contributors who participated in this project.