Pro PHP- Patterns, Frameworks, Testing and More

(vip2019) #1

(^28) CHAPTER 3 ■ SINGLETON AND FACTORY PATTERNS
} else {
return false;
}
}
}
class MYSQL implements IDatabaseBindings {
protected $_connection;
public function __construct() {
$this->_connection = mysql_connect('localhost');
mysql_select_db('example_db', $this->_connection);
}
public function userExists($email) {
$emailEscaped = mysql_real_escape_string($email);
$query = "select 1 from users where email = '". $emailEscaped ."'";
if($result = mysql_query($query, $this->_connecion)) {
return (mysql_num_rows($result) > 0)?true:false;
} else {
return false;
}
}
}
class DatabaseFactory {
public static function factory() {
$type = loadtypefromconfigfile();
switch($type) {
case 'PGSQL':
return new PGSQL();
break;
case 'MYSQL';
return new MYSQL();
break;
}
}
}
//--- Usage ---
$db = DatabaseFactory::factory();
$db->userExists('[email protected]');
McArthur_819-9C03.fm Page 28 Friday, February 1, 2008 10:24 AM

Free download pdf