Manual

From Sum-e Wiki

Revision as of 10:14, 26 August 2009 by Fornve (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

License

GPL v3

Config file

To use Entity class you need to declare a few constants:

define( 'DB_TYPE', 'mysql' );
define( 'DB_HOSTNAME', 'localhost' );
define( 'DB_NAME', 'test_database' );
define( 'DB_USER', 'test_user' );
define( 'DB_PASSWORD', 'test_password' );

Example of use

Collection of results

$entity = new Entity(); // will create connection to database
$query ="SELECT * FROM test";
$dao_objects = $entity->Collection( $query );

Retrieve one result

$entity = new Entity();
$query = "SELECT * FROM test WHERE column_1 = ? AND column_2 = ?";
$object = $entity->GetFirstResult( $query, array( $value_1, $value_2 ) );

Perform query on database

$query = "INSERT INTO test ( column_1 ) VALUES ( ? )";
$entity = new Entity();
$entity->Query( $query, array( $value ) );

DAO - beauty of code

Data Access Object

Create model class:

class User extends Entity
{
	protected $schema = array( 'id', 'username', 'password', 'last_login' );

	// this function must be written each time you write dao class for entity until php 6
	static function Retrieve( $id ) 
	{
		$query = "SELECT * FROM user WHERE id = ?";
		$entity = new Entity();
		return $entity->GetFirstResult( $query, array( $id ), __CLASS__ );
	}

	function Login( $username, $password )
	{
		$query = "SELECT * FROM user WHERE username = ? AND assword = md5( ? )";
		$entity = new Entity();
		return $this->GetFirstResult( $query, array( $username, $password ), __CLASS__ );
	}
} 

$schema represents all table columns. Create table for this example will look like:

CREATE TABLE user ( id SERIAL, username VARCHAR(255), password VARCHAR(32), lastlogin INT(10) );

Retrieve object by id

$user = User::Retrieve( $id );

Retrieve object by model method example

$user = User::Login( $username, $password );
$user->password = md5( $new_password ); // to change password
$user->Save(); //  will update all fields in $user->schema

DAO

$user = new User();
$user->username = $username;
$user->password = md5( $password );
$user->Save();