library/SDIS62/Model/Mapper/DbTable/Abstract.php
public function mapData(array $data, $dataFromDb = false)
    {
        // On map les nom des champs entre base et entité
        $map = $dataFromDb ? array_flip($this->getMap()) : $this->getMap();

        foreach($data as $key => $value)
        {
            if(array_key_exists($key, $map))
            {
                $newkey = $map[$key];
                $oldkey = $key;
                
                $data[$newkey] = $data[$oldkey];
                unset($data[$oldkey]);
            }
        }
        
        // On enlève les données non présentes en base et on attribut les données par défaut au tableau
        if(!$dataFromDb)
        {
            $data = array_intersect_key($data, array_flip($this->getDbTable()->info(Zend_Db_Table_Abstract::COLS)));
            
            $cols = $this->getDbTable()->info(Zend_Db_Table_Abstract::METADATA);
            
            foreach($data as $key => $value)
            {
                if($value === null)
                {
                    if(array_key_exists($key, $cols) && $cols[$key]["DEFAULT"] !== null)
                    {
                        switch($cols[$key]["DEFAULT"])
                        {
                            case "CURRENT_TIMESTAMP":
                                $data[$key] = new Zend_Db_Expr('CURRENT_TIMESTAMP');
                                break;
                                
                            default:
                                $data[$key] = $cols[$key]["DEFAULT"];
                        }
                    }
                }
            }
        }
        
        return $data;
    }
public function mapData(array $data, $dataFromDb = false)
    {
        // On map les nom des champs entre base et entité
        $map = $dataFromDb ? array_flip($this->getMap()) : $this->getMap();

        foreach($data as $key => $value)
        {
            if(array_key_exists($key, $map))
            {
                $newkey = $map[$key];
                $oldkey = $key;
                
                $data[$newkey] = $data[$oldkey];
                unset($data[$oldkey]);
            }
        }
        
        // On enlève les données non présentes en base et on attribut les données par défaut au tableau
        if(!$dataFromDb)
        {
            $data = array_intersect_key($data, array_flip($this->getDbTable()->info(Zend_Db_Table_Abstract::COLS)));
            
            $cols = $this->getDbTable()->info(Zend_Db_Table_Abstract::METADATA);
            
            foreach($data as $key => $value)
            {
                if($value === null)
                {
                    if(array_key_exists($key, $cols) && $cols[$key]["DEFAULT"] !== null)
                    {
                        switch($cols[$key]["DEFAULT"])
                        {
                            case "CURRENT_TIMESTAMP":
                                $data[$key] = new Zend_Db_Expr('CURRENT_TIMESTAMP');
                                break;
                                
                            default:
                                $data[$key] = $cols[$key]["DEFAULT"];
                        }
                    }
                }
            }
        }
        
        return $data;
    }
Récupération du tableau de mappage des données
Si la tableau de mappage est vide, on retourne un tableau vide

@param array $data Tableau des données à préparer
@param boolean $dataFromDb Optionnel, Booléen : Si les données à préparer viennent de la base de données (et pas de l'entité)