Zeta Components - high quality PHP components

Zeta Components Manual :: Docs For Class ezcDbFactory

Database::ezcDbFactory

Class ezcDbFactory

ezcDbFactory manages the list of known database drivers and is used to create their instances.

Example:

  1.  $dbparams = array(
  2.      'type'   => 'mysql',
  3.      'dbname' => 'test',
  4.      'user'   => 'john',
  5.      'pass'   => 'topsecret' );
  6.  $db = ezcDbFactory::create( $dbparams );
  7.  $db->query( 'SELECT * FROM tbl' );

Instead of passing an array with those parameters, you can also pass a DSN:

  1.  $dsn = "mysql://root@localhost/geolocation";
  2.  $db = ezcDbFactory::create( $dsn );

Other examples of DSNs are:

  1.  $dsn = "sqlite:///tmp/ezc.sqlite"; // Disk based databases for SQLite.
  2.  $dsn = "sqlite://:memory:";        // In memory databases for SQLite.

Note that this class does not deal with character sets automatically, you have to make sure that you do that yourself. For MySQL that means running a query "SET NAMES" for example. See the tutorial for some hints on this.

Source for this file: /Database/src/factory.php

Version:   //autogentag//

Method Summary

public static void addImplementation( $implementationName , $className )
Adds a database implementation to the list of known implementations.
public static ezcDbHandler create( $dbParams )
Creates and returns an instance of the specified ezcDbHandler implementation.
public static array(string) getImplementations( )
Returns a list with supported database implementations.
public static array parseDSN( $dsn )
Returns the Data Source Name as a structure containing the various parts of the DSN.

Methods

addImplementation

static void addImplementation( string $implementationName , string $className )

Adds a database implementation to the list of known implementations.

$implementationName is the name of the implemenation. This name should be short and uniquely identify the database. $className is the class name of the class that implements the handler for this database.

Example:

  1.  class DB2Handler
  2.  {
  3.  }
  4.  ezcDbFactory::addImplementation( 'db2', 'DB2Handler' );
  5.  // ...
  6.  $dbparams = array( 'handler' => 'db2', ... );
  7.  $db = ezcDbFactory::create( $dbparams );
Parameters:
Name Type Description
$implementationName string
$className string

create

static ezcDbHandler create( mixed $dbParams )

Creates and returns an instance of the specified ezcDbHandler implementation.

Supported database parameters are:

  • phptype|type|handler|driver: Database implementation
  • user|username: Database user name
  • pass|password: Database user password
  • dbname|database: Database name
  • host|hostspec: Name of the host database is running on
  • port: TCP port
  • charset: Client character set
  • socket: UNIX socket path
The list above is actually driver-dependent and may be extended in the future. You can specify any parameters your database handler supports.
Parameters:
Name Type Description
$dbParams mixed Database parameters (driver, host, port, user, pass, etc). May be specified either as array (key => val ....) or as DSN string. Format of the DSN is the same as accepted by PEAR::DB::parseDSN().
Exceptions:
Type Description
ezcDbHandlerNotFoundException if the requested database handler could not be found.

getImplementations

static array(string) getImplementations( )

Returns a list with supported database implementations.

Example:

parseDSN

static array parseDSN( string $dsn )

Returns the Data Source Name as a structure containing the various parts of the DSN.

Additional keys can be added by appending a URI query string to the end of the DSN.

The format of the supplied DSN is in its fullest form:

  1.   phptype(dbsyntax)://username:password@protocol+hostspec/database?option=8&another=true

Most variations are allowed:

  1.   phptype://username:password@protocol+hostspec:110//usr/db_file.db?mode=0644
  2.   phptype://username:password@hostspec/database_name
  3.   phptype://username:password@hostspec
  4.   phptype://username@hostspec
  5.   phptype://hostspec/database
  6.   phptype://hostspec
  7.   phptype(dbsyntax)
  8.   phptype

This function is 'borrowed' from PEAR /DB.php .

Parameters:
Name Type Description
$dsn string Data Source Name to be parsed
Documentation generated by phpDocumentor 1.4.3