Refactorisation FreshRSS_Configuration

Implémente https://github.com/marienfressinaud/FreshRSS/issues/260
(évite les comparaisons de chaînes au profit des vrais booléens et
entiers)
Grosse simplification et réduction du code relatif à la configuration.
Supprime ConfigurationDAO.
Permet de simplifier considérablement configureController.
Évite de multiples copies des mêmes données en mémoire.
Évite de garder plusieurs versions de la configuration en mémoire
(auparavant : dans un tableau au niveau de ModelArray + au niveau de
FreshRSS_Configuration + en Session + des copies temporaires comme
ConfigurationDAO).
Ne stocke plus 'conf' en Session (n'était presque pas utilisé).
Évite de recharger plusieurs fois Translate inutilement.
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/303
This commit is contained in:
Alexandre Alapetite committed 2013-12-28 23:09:39 +01:00
1 parent 856d2c125b
commit 96bdbafcea
25 files changed
+309 -652

No files matched your search

+9 -11
View File
@@ -8,11 +8,6 @@
* La classe Model_array représente le modèle interragissant avec les fichiers de type texte gérant des tableaux php
*/
class Minz_ModelArray {
/**
* $array Le tableau php contenu dans le fichier $filename
*/
protected $array = array ();
/**
* $filename est le nom du fichier
*/
@@ -25,29 +20,32 @@ class Minz_ModelArray {
*/
public function __construct ($filename) {
$this->filename = $filename;
}
protected function loadArray() {
if (!file_exists($this->filename)) {
throw new Minz_FileNotExistException($this->filename, Minz_Exception::WARNING);
}
elseif (($handle = $this->getLock()) === false) {
throw new Minz_PermissionDeniedException($this->filename);
} else {
$this->array = include($this->filename);
$data = include($this->filename);
$this->releaseLock($handle);
if ($this->array === false) {
if ($data === false) {
throw new Minz_PermissionDeniedException($this->filename);
} elseif (!is_array($this->array)) {
$this->array = array();
} elseif (!is_array($data)) {
$data = array();
}
return $data;
}
}
/**
* Sauve le tableau $array dans le fichier $filename
**/
protected function writeFile() {
if (!file_put_contents($this->filename, "<?php\n return " . var_export($this->array, true) . ';', LOCK_EX)) {
protected function writeArray($array) {
if (!file_put_contents($this->filename, "<?php\n return " . var_export($array, true) . ';', LOCK_EX)) {
throw new Minz_PermissionDeniedException($this->filename);
}
return true;