PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Duong Huynh Nghia   Simple PHP ORM   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: Simple PHP ORM
Manage objects stored in a database using a ORM
Author: By
Last change:
Date: 7 years ago
Size: 2,394 bytes
 

Contents

Class file image Download

simpleORM

PHP ORM Database in simplest way.

Installation:

Include autoload file of SimpleORM to your project require_once '../SimpleORM/autoload.php';

Config Database Connector

$configs = array( 
    'host' => 'localhost', // host name
    'name' => 'd2_test2', //db name
    'user' => 'root', //user db
    'pwd' => '123456',//password db
    'port' => 3306, // port connector
    'prefix' => 'tbl_', // prefix for tables
    'adapter' => 'mysqli', // adapter, supported MySQLi and PDO
    'charset' => 'utf8', // charset of connector
	  'type' => 'mysql' // type of connection in case using PDO
 );
$db = new Connector($configs);

Usage

??? Look the database sql file in folder "test/d2_test2.sql".

New Model

$oModel = new Model("client");
$oModel->getTable()->setPrimaryKey("client_id"); // should set primary key for table

Create Query

$query = $oModel->createQuery();

How to get all "clients" with filter

$mData = $oModel->createQuery()->where('client_id',1,'>')->select('*')->getAll();

Setup relationship tables

$oRelation = new Relation($this);
		// 1-1
		$oRelation->hasOne('info',array(
			'source' => 'client_id', // from table column
			'target' => 'client_id', // to target table column
			'table' => 'client_info' // target table
		));
		// 1-n
		$oRelation->hasMany('apps',array(
			'source' => 'client_id',
			'target' => 'client_id',
			'table' => 'client_app'
		));
		// n-1
		$oRelation->belongsTo('client_type',array(
			'source' => 'level',
			'target' => 'id',
			'table' => 'client_type',
		));
		// n- n with bride(junction) table client_group
		$oRelation->hasManyToMany('groups',array(
				'source' => 'client_id', // from table column
				'target' => 'id', // to target table column
				'table' => 'group', // target table
				'option' => array(
						'bridge' => array(
								'table' => 'client_group', // junction table
								'source' => array(
									'client_id' => 'client_id' // mapping junction table & source table
								),
								'target' => array(
										'id' => 'group_id',// mapping junction table & target table
								)
						)
				)
		));

Advanced usage

  • It's allowed to extend all of class such as: Model, Table, Reference and Relation, Even the Row Data.
  • Look more at the folder "test/DbTest/Client".
  • You can extend and write any advanced functions.