Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
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); ?>