Skip to content

bggardner/moxim-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ABOUT
The Modular eXtensible Information Modeler (MoXIM) is a database
structure and servicing layer that creates a balance between
performance and flexibility.  It can be implemented as a wrapper
around an existing database to create dynamic relationships.

The original XIM (see link below) was a purely relational database
that essentially had no predefined structure, which simulated a
schema-less database.  All "nodes" and the relationships between
them were stored in very large tables.  Node types and relationship
types were dynamically generated, making it extremely flexible.

MoXIM uses a hybrid approach, blending the flexibility of a schema
-less database and the performance of a database with a fully defined
schema.  MoXIM's "modules" are simply the tables with schemas that
can have primary/foreign key relationships between them, as "usual".
MoXIM allows for additional relationships to be created dynamically
without altering the schema of the existing tables.

See MoXIM_Database_Layout.pdf for an example MoXIM database layout.

moxim-php provides a PHP service layer for a MoXIM-ized database:
http://www.github.com/bggardner/moxim-php

For more information about the original XIM:
http://www.nasa.gov/centers/johnson/techtransfer/technology/MSC-24575-1-xim.html

INSTALLATION
   1. Copy the 'lib' directory to your webserver. You may rename this
   directory: "moxim" or "moxim-php" is recommended.

   2. As the above files should only be included, it is recommended
   you prevent a web client from accessing them by storing them
   in a private directory or set permissions accordingly.

USAGE
   1. Include the 'config.php' file in every file you need to use
   MoXIM.  Alternatively, you may copy its contents into your own
   include file, as its only purpose is to load moxim-php classes.

   2. Instantiate a service by calling <ServiceClass>($o), where $o
   is an object that defines the data provider information.

EXAMPLE
   <?php
   require_once 'config.php';

   $o = new stdClass();
   $o->driver = 'pdo/mysql'; // Name of driver
   $o->dbname = 'moxim'; // Name of MySQL database
   $o->username = 'username'; // Username for MySQL database
   $o->password = 'password'; // Password for MySQL database

   $svc = new MoXIM\services\BaseService($o);
   
   $m = new MoXIM\models\Module();
   $m->name = 'myTable';

   $svc->addModule($m);
   ?>

About

Modular eXtensible Information Modeler (MoXIM) classes for PHP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages