code: 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;
      }
docs: 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é)