The Xyster_Orm_Mapper
class is intended to connect to SQL databases. You can extend Xyster_Orm_Mapper_Abstract
to create a mapper that connects to an LDAP server, parses an XML document, calls web services, and so on.
You need to set up the database connection to Xyster_Orm_Mapper
before any operations are performed with Xyster_Orm
. Simply pass the connection settings to the dsn
method of Xyster_Orm_Mapper
.
<?php Xyster_Orm_Mapper::dsn('myDb', 'Pdo_Mysql', array('host' => '127.0.0.1', 'username' => 'webuser', 'password' => 'xxxxxxxx', 'dbname' => 'test'));
You can also pass a Zend_Db_Adapter_Abstract
object instead of the driver type and options.
<?php $db = new Zend_Db_Adapter_Pdo_Mysql(array('host' => '127.0.0.1', 'username' => 'webuser', 'password' => 'xxxxxxxx', 'dbname' => 'test' )); Xyster_Orm_Mapper::dsn('myDb', $db);
The Xyster_Orm_Mapper
class has the ability to cache the metadata it retrieves for tables, avoiding repeat trips to the data store. A Zend_Cache_Core
object can be passed to the Xyster_Orm_Mapper_Factory
instance that creates the mappers.
<?php $frontendOptions = array('automatic_serialization' => true); $backendOptions = array('cacheDir' => 'cacheDir'); $cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions); $orm = Xyster_Orm::getInstance(); $mf = $orm->getMapperFactory(); $mf->setMetadataCache($cache);
Alternatively, you can specify a Zend_Registry
key in the options array of the mapper itself.
<?php // let's pretent $cache is the Zend_Cache object we factoried a minute ago Zend_Registry::set('myCache', $cache); class SomethingMapper extends Xyster_Orm_Mapper { // protected properties like $_domain, etc. protected $_options = array('metadataCache' => 'myCache'); }