Using SQLMap PHP DataMapper
The SQLMap DataMapper API provides four core functions:
- build a TSqlMapper instance from a configuration file or cache
- execute an update query (including insert and delete)
- execute a select query for a single object
- execute a select query for a list of objects
The API also provides support for retrieving paginated lists and managing
transactions.
Building a TSqlMapper instance
An XML document is a wonderful tool for describing a database configuration
, but you can't execute XML. In order to use the
SQLMap configuration and definitions in your PHP application, you need a class
you can call.
The framework provides service methods that you can call which read the
configuration file (and any of its definition files) and builds a
TSqlMapper object. The TSqlMapper object provides access to the rest
of the framework. The following example shows a singleton TMapper that is
similar to the one bundled with the framework.
require_once('/path/to/SQLMap/TSqlMapper.php');
class TMapper
{
private static $_mapper;
public static function configure($configFile)
{
if(is_null(self::$_mapper))
{
$builder = new TDomSqlMapBuilder();
self::$_mapper = $builder->configure($configFile);
}
return self::$_mapper;
}
public static function instance()
{
return self::$_mapper;
}
}
To obtain the TSqlMapper instance, first configure the mapper once.
TMapper::configure('path/to/sqlmap.config');
The TDomSqlMapBuilder object will go throught the the sqlmap.config
file and build a TSqlMapper instance. To use TSqlMapper in your
application, specify one of the TSqlMapper methods. Here's an example:
$list = TMapper::instance()->queryForList("PermitNoForYearList", $values);
Multiple Databases
If you need access to more than one database from the same application, create
a DataMapper configuration file for that database and another Mapper class to
go with it.
TDomSqlMapBuilder Configuration Options
If you find that you already have loaded your DataMapper configuration
information as a SimpleXMLElement instance within your application, the
TDomSqlMapBuilder provides Configure overloads for those types as
well.