All pastes #385020 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-03-07 15:13 UTC
rendered paste body
<?php

class userController extends Controller
{

	public function __construct ()
	{
		parent::__construct();
	}

	public function addUser ()
	{
	
		$user = new User (); // instantiated using __autoload.
		$user -> set ( 'firstName', 'Berry' );
		$user -> set ( 'lastName', 'Langerak' );
		
		$user -> save ();
	}

	public function listUsers ()
	{
	
		$users = UserMapper::Get ( array ( 'firstName' => '= Berry' ) );

		$view = new HTMLView ( 'userList' );
		$view -> appendModels ( 'users', $users );
	
		return $view;
	}

}


class userMapper implements iMapper
{


	public function __construct ();
	{
		parent::__construct ();
	}


	public function Get ( $criteria )
	{
		/**
		* De onderliggende mapper gaat dan vervolgens
		* kijken welke velden er in de database zitten,
		* en retourneerd de records die voldoen aan de
		* criteria.
		**/
		return parent::Get ( 'users', $criteria );
	
	}


	/**
	* Ten opzichte van..
	**/
	public function Get ( $criteria )
	{
		$query = "SELECT firstName, lastName FROM users";
		
		/**
		* Geen zin om dit uit te schrijven, daarom zo. In
		* dit voorbeeld zou het nog werken ook.
		**/ 
		foreach ( $criteria AS $field => $criterium )
		{
			$where = ( !isset ( $where ) ) ? ' WHERE ' : '';
			$where .= $field . ' ' . $criterium . ' ';
		}
		
		$res = mysql_query ( $query );
		while ( $current = mysql_fetch_assoc ( $res ) )
		{
			$users[] = array ( $current['firstName'], $current['lastName'] );
		}
		
		return $users;
		
	}




	public function set ( $varName, $value )
	{
	
		if ( isset ( $this -> $varName ) )
		{
			$this -> $varName = mysql_real_escape_string ( $value ); 
		}
	
	}

	public function save ()
	{
		/**
		* De save van de parent (model) detecteerd middels 
		* Reflection de velden die hij op moet slaan.
		**/
		$this -> userId = parent::save (); 
	}


	public function save ()
	{
		/**
		* Is dit dan zoals jij het zou doen?
		**/
		$query = "INSERT INTO users ( firstName, lastName ) VALUES ( %s, %s );";
		
		if ( !mysql_query ( sprintf ( $query, $this -> firstName, $this -> lastName ) ) )
		{
			throw new databaseException ();
		}
		else
		{
			$this -> userId = mysql_insert_id ();
		}
		
	}



}

?>