Mapper

Whyte_Model_Mapper interacts with Zend Framework’s data persistence layer.

Public methods

add(Whyte_Model_Entity $entity)

Adds an entity to database:

...
$new_id = $mapper->add($entity);
...
Parameters:$entity (Whyte_Model_Entity) – an entity instance
Returns:mixed (new record id)
get($property, $value)

Return a single record filtered by a property value:

...
$data_array = $mapper->get('id', (int) $id);
if ($data_array)
    return new Application_Model_User($data_array);
...
Parameters:
  • $property (string) – property name
  • $value (mixed) – property value
Returns:

array | null

update(Whyte_Model_Entity $entity, $key_property_name)

Update entity record identified by key property:

...
$mapper->update($user, 'id');
...
Parameters:
  • $entity (Whyte_Model_Entity) – an updated entity instance
  • $key_property_name (string) – the key property name
delete($property, $value)

Delete record(s) by property value and return number of affected records.

... $mapper->delete(‘id’, 123); ...
Parameters:
  • $property (string) – property name
  • $value (mixed) – property value
Returns:

int

count_all($string=null, $value=null)

Count all records, optionally filtered by filter condition:

return $mapper->count_all(
    $mapper->get_map_value('category_id').' IN (?)',
    $category_ids
);
Parameters:
  • $string (string) – condition string for where statement
  • $value (mixed) – filter value
fetch_all($limit=null, array $where=null, array $where_not=null)

Fetch a set of entity rows, optionally filtered by $where or $where_not parameter. Should be overridden per model for joined tables, various parameters, etc:

...
$mapper = new Application_Model_GameMapper();
$rows = $mapper->fetch_all($team_id, $cat_ids, $offset, $user_id);
...
Returns:array
row_to_array(Zend_Db_Table_Row $input_data, array $add_properties=array())

Transform Zend_Db_Table_Row to an assoc. array according to the map. This method should be used to spawn entity instances after table rows are received from DB:

$mapper = new Application_Model_GameMapper();
$rows = $mapper->fetch_all($team_id);
$result_set = array();
foreach ($rows as $row) {
    $game = new self($mapper->row_to_array($row));
}
return $result_set;
Parameters:
  • $input_data (Zend_Db_Table_Row) – an fetched DB row
  • $add_properties (array) – an array of arbitrary properties to add to the resulting array
Returns:

array

get_gateway()

Return mapper’s gateway. Usually an instance of Zend_Db_Table:

...
$mapper = new Application_Model_GameMapper();
$adapter = $mapper->get_gateway()->getAdapter();
$adapter->beginTransaction();
...
Returns:null | Zend_Db_Table | Zend_Db_Table_Abstract
get_map()

Return mapper’s map:

$team_mapper = new Application_Model_TeamMapper();
$team_map = $team_mapper->get_map();
$select
    ->joinLeft(array('team'=>'team'),
              $this->_map['object_id'].' = team.id',
               array('team_title'=>'team.'.$team_map['title'],
                     'team_logo'=>'team.'.$team_map['logo']));
Returns:array
get_map_value($property)

Get a mapped value of a property by its name:

$team_mapper = new Application_Model_TeamMapper();
$team_exist_validator = new Zend_Validate_Db_RecordExists(
                               $team_mapper->get_table_name(),
                               $team_mapper->get_map_value('id'));
Parameters:$property (string) – property name
Returns:string
get_table_name()

Return mapper’s table name if any:

$team_mapper = new Application_Model_TeamMapper();
$team_exist_validator = new Zend_Validate_Db_RecordExists(
                                $team_mapper->get_table_name(),
                                $team_mapper->get_map_value('id'));
Returns:string | null

Project Versions

Table Of Contents

Previous topic

Entity

This Page