/**
  * Test des CSV avec en-tête
  */
 public function testCsvHeaded()
 {
     $csvFile = new CopixCsv(COPIX_TEMP_PATH . 'file.csv');
     $itCsv = $csvFile->getIterator(CopixCSV::HEADED);
     $arInfo = $itCsv->current();
     $arKeys = array_keys($arInfo);
     $this->assertEquals($arKeys[0], 'test');
     $arInfo = $itCsv->next();
     $arKeys = array_keys($arInfo);
     $this->assertEquals($arKeys[0], 'test');
 }
 /**
  * Retourne les logs sous forme d'itérateur
  */
 public function getLog($pProfil, $pNbItems = 20)
 {
     $page = CopixSession::get('log|numpage') - 1;
     if (file_exists($this->_getFileName($pProfil))) {
         // Création d'un objet CopixCSV pour contenir le contenu du fichier
         $csvLog = new CopixCsv($this->_getFileName($pProfil));
         // Récupération de l'itérateur et compte du nombre de ligne
         $csvLines = $csvLog->getIterator();
         $csvNbLines = $csvLines->count();
         // Calcul de la position et des offset
         $pPosition = $csvNbLines - $page * $pNbItems - $pNbItems;
         // Calcul de la position de départ pour parcourir la portion du fichier à afficher
         if ($pPosition < 0) {
             $pOffset = $pNbItems + $pPosition;
             $pPosition = 0;
         } else {
             $pOffset = $pNbItems;
             $pPosition -= 1;
         }
         $csvLines->seek($pPosition);
         $content = array();
         for ($i = 0; $i < $pOffset; $i++) {
             $content[] = $csvLines->current();
             $csvLines->next();
         }
         $content = array_reverse($content);
         CopixSession::set('log|nbpage', ceil($csvNbLines / $pNbItems));
         $arrayObject = new ArrayObject(array_map(array($this, 'toObject'), $content));
         return $arrayObject->getIterator();
     }
     return new ArrayObject();
 }