Projects / Metastorage


Metastorage is a PHP data access object generator compiler tool. It implements an object persistence API from a description in an XML format named CPML. The persistent object classes implement object-relational mappings, so developers do not have to write SQL manually. It features an object query language for specifying conditions for querying objects, generation of classes for producing reports, generation of classes to manage templated Web forms for creating new persistent objects, and generation of UML class diagrams. It can be run from the command line or from a Web interface.

Operating Systems

Recent releases

  •  19 Sep 2007 11:24

    Release Notes: This release introduces the capability of generating a new type of function to create a copy of an existing persistent object in memory. The generation of form processing classes for creating new objects was enhanced to support classes with variables of types boolean, integer, decimal, and float. This release also includes several minor bugfixes.

    •  22 Nov 2006 09:57

      Release Notes: This release introduces the possibility to group rows of report query results, similar to using the SQL GROUP BY clause. The Object Query Language was enhanced to support constant expressions relative to the current date and time of when the queries are executed. The algorithm of computing the path of parsed XML files was changed to avoid exceeding the length of Windows file systems path limits. The reports now support columns with boolean type expression values.

      •  06 Apr 2006 11:51

        Release Notes: This released introduces several fixes in the generated PHP code to make it compliant with the backward incompatible changes in PHP 4.4. Defining all persistent object classes in separate files referenced with the includedclass tag is now allowed. The list of tables in SQL queries of OQL expressions with not in operators was corrected. The encoding of 8-bit characters used in definition files was fixed.

        •  23 Feb 2006 09:53

          Release Notes: This release introduces two new operators of the Object Query Language: in and not in. These operators can be used to define search conditions to check whether an object is present or absent in a one-many or many-many relationship with another object. A new tool named XMI to Metastorage was contributed, which can convert UML class diagrams exported by UML tools in the XMI format into Metastorage class component definition format (CPML).

          •  31 Jan 2006 05:22

            Release Notes: This release includes an example application that demonstrates how to use Metastorage generated code in real projects. The example application is a simple news publishing system named Metanews. The documentation was enhanced to explain how Metanews was built using a methodology named Use Case mapping. This methodology defines how to depart from UML use case diagrams to an implementation based on PHP OOP classes. The templates of the form themes were enhanced to be compliant with HTML 4.01 Strict DTD. A bug in the generation of queries that use OQL to traverse collections of objects was fixed.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.