Select Git revision
Divers.dokuwiki
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Divers.dokuwiki 5.73 KiB
====== Divers ======
===== Export CSV =====
UnicaenApp intègre un ensemble de classes et de méthodes qui permettent de générer facilement des contenus téléchargeables au format CSV.
Exemple d'utilisation :
<file php DemoController.php>
public function csvAction()
{
/* Création d'un nouveau modèle de données au format CSV. L'en-tête peut être renseignée dès l'instanciation. */
$result = new \UnicaenApp\View\Model\CsvModel( ['header' => ['Nom','Prenom'] ]);
/* Les données peuvent être transmises par des variables (data, header, separator, filename, delimiter)... */
$result->setVariable('data', [
['Lécluse','Laurent'],
['Morin','Paul'],
['Durand','Patrick']
]);
/* .. ou bien par des accesseurs. Ici on attribue un nom de fichier pour l'export. */
$result->setFilename('test_export_csv.csv');
/* On peut aussi ajouter au besoin des lignes avec la méthode addLine ou des tableaux avec addLines... */
$result->addLine( [
'Anquetil', 'Pierre'
] );
return $result;
}
</file>
===== Export XML =====
Il est possible de générer des fichiers XML à la volée et en utilisant le modèle MVC.
Cela se passe de la manière suivante :
Dans votre action de contrôleur :
<file php controler.php>
$data = ['balise1' => 'contenu1', 'balise2' => 'contenu2'];
$viewModel = new \UnicaenApp\View\Model\XmlModel();
$viewModel->setVariable('data', $data); // on transfère les données à la vue
$viewModel->setFileName('mon-fichier-export.xml'); // facultatif
return $viewModel;
</file>
Dans votre vue :
<file php view.phtml>
<?php
/**
* @var $data array
*/
echo "<body>\n";
foreach( $data as $balise => $valeur ){
echo "\t".$this->tag($balise)->text($valeur)."\n";
}
echo '</body>';
</file>
<WRAP center round tip 60%>
Dans cette vue, l'[[develop:unicaen2:moduleunicaenunicaenapp:viewhelpers:tag|Aide de vue Tag]] est utilisée ici pour générer des tags. Ceci évite de gérer explicitement les caractères foireux (<, >, &).
</WRAP>
Résultat :
<file xml mon-fichier-export.xml>
<?xml version="1.0" encoding="utf-8"?>