commit ad9a025991b0962b2856fac92a8f305a075c6516
parent 3cdc3223a840706e8fece80bdb3fdf039997886e
Author: dankert <devnull@localhost>
Date: Mon, 16 Mar 2009 22:34:18 +0100
Beim Lesen der Konfigurationsdateien kein unnötiges is_file() mehr.
Diffstat:
2 files changed, 59 insertions(+), 21 deletions(-)
diff --git a/serviceClasses/FileUtils.class.php b/serviceClasses/FileUtils.class.php
@@ -1,16 +1,16 @@
<?php
/**
- * Werkzeugklasse für Datei-Operationen.
+ * Werkzeugklasse f�r Datei-Operationen.
*
*/
class FileUtils
{
/**
- * Fügt einen Slash ("/") an das Ende an, sofern nicht bereits vorhanden.
+ * Fuegt einen Slash ("/") an das Ende an, sofern nicht bereits vorhanden.
*
* @param String $pfad
- * @return Pfad mit angehängtem Slash.
+ * @return Pfad mit angeh�ngtem Slash.
*/
function slashify($pfad)
{
@@ -22,7 +22,7 @@ class FileUtils
/**
- * Ermittelt das temporäre Verzeichnis.
+ * Ermittelt das tempor�re Verzeichnis.
*
* @return String
*/
@@ -32,6 +32,44 @@ class FileUtils
@unlink($tmpFilename);
return FileUtils::slashify( dirname($tmpFilename) );
}
+
+
+
+ /**
+ * Liest die Dateien aus dem angegebenen Ordner in ein Array.
+ *
+ * @param $dir Verzeichnis, welches gelesen werden soll
+ * @return Array Liste der Dateien im Ordner
+ */
+ function readDir($dir)
+ {
+ $dir = FileUtils::slashify($dir);
+ $dateien = array();
+
+ if ( !is_dir($dir) )
+ {
+ return false;
+ }
+
+ if ( $dh = opendir($dir) )
+ {
+ while( ($verzEintrag = readdir($dh)) !== false )
+ {
+ if ( substr($verzEintrag,0,1) != '.' )
+ {
+ $dateien[] = $verzEintrag;
+ }
+ }
+ closedir($dh);
+
+ return $dateien;
+ }
+ else
+ {
+ die('unable to open directory: '.$dir);
+ }
+
+ }
}
?>
\ No newline at end of file
diff --git a/serviceClasses/Preferences.class.php b/serviceClasses/Preferences.class.php
@@ -9,6 +9,13 @@
*/
class Preferences
{
+ /**
+ * Liest die Konfigurationsdateien im angegebenen Ordner.
+ *
+ * @param $dir Verzeichnis, welche gelesen wird. Optional. Falls nicht gesetzt, wird
+ * das Standard-Konfigurationsverzeichnis verwendet.
+ * @return Array
+ */
function load( $dir='' )
{
if ( !defined('QUOTE') )
@@ -31,26 +38,19 @@ class Preferences
exit;
}
- if ( $dh = opendir($dir) )
+ $dateien = FileUtils::readDir($dir);
+
+ foreach( $dateien as $datei )
{
- while( ($verzEintrag = readdir($dh)) !== false )
+ $filename = $dir.$datei;
+
+ if ( is_file($filename) && eregi('\.(ini.*|conf)$',$datei) )
{
- $filename = $dir.$verzEintrag;
-
- if ( is_file($filename) && eregi('\.(ini.*|conf)$',$verzEintrag) )
- {
- $nameBestandteile = explode('.',$verzEintrag);
-
- $values[$nameBestandteile[0]] = parse_ini_file( $filename,true );
- }
- }
- closedir($dh);
+ $nameBestandteile = explode('.',$datei);
+ $values[$nameBestandteile[0]] = parse_ini_file( $filename,true );
+ }
}
- else
- {
- die('unable to open directory: '.$dir);
- }
-
+
ksort($values);
return $values;