PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Funktionen auslagern



SebbyPHM
03.05.2010, 00:04
Hallo beisammen,

mir kam vorhin das Problem, das man oft die Übersicht verliert, sobald man viele Funktionen in die functions.lib oder sonst wo einbindet.
So weit so gut, man könnte die Funktionen in verschiedene Dateien aufsplitten.
Ich habe mir mal schnell etwas gemacht, was vielen vielleicht etwas Übersichtlichkeit bringen kann:

1. Einfügen in die functions.lib.php als Funktion:

/**
* Funktion zum abrufen und inistalisieren von
* benutzerdefinierten Funktionen

* Parameter:
* name => Funktions- und Dateiname
* params => diverse Parameter als Array
*/
function func ($name, $params=NULL) {
$path = dirname (realpath (__FILE__)) . '/functions/';

if (!function_exists ($name))
if (!@include ($path.$name.'.php'))
echo '<br /><strong>Fehler:</strong> Funktionsdatei für <em>'.$name.'</em> wurde nicht gefunden.<br />';
if (function_exists ($name)) {
if ($params != NULL)
return $name($params);
else
return $name();
} else {
echo '<br /><strong>Fehler:</strong> Funktion <em>'.$name.'</em> kann nicht initalisiert werden.<br />';
}
}

2. Einen neuen Order lib/functions/ erstellen.
3. Darin eine readme.txt erstellen:

Beispiele für die Erstellung neuer Funktionen.


##################################
##### EINZIGER PARAMETER #####
##################################
ALT:
<?php
function FUNKTIONSNAME ($p1) {
// sonstiges Programmcode
}
?>

NEU:
Alles bleibt beim alten


#################################
##### MEHRERE PARAMETER #####
#################################
ALT:
<?php
function FUNKTIONSNAME ($p1, $p2, $p3, ...) {
// sonstiges Programmcode
}
?>

NEU:
<?php
function FUNKTIONSNAME ($params) {
list ($p1, $p2, $p3, ...) = $params; // Alte Variablen übernemen

// sonstiges Programmcode
}
?>


Die readme sollte selbsterklärend sein, neue Funktionen einfach nach dem Beispiel unter lib/functions/FUNKTIONSNAME.php ablegen und mit func (FUNKTIONSNAME[, ...]); aufrufen.

Viel Spaß damit.

Kraemer84
03.05.2010, 21:40
ist echt mal ne gute idee aber meist sind ja von den addons ein



// addon blub start

php

// addon ende

woran ich mich zb immer orientiere und mir selber auch so verweiße mache aber wer es richtig ordentlich haben will denke ich mal is das gut

das kann aber dann nicht sein das die performance leidet ?

SebbyPHM
03.05.2010, 23:45
Nein. Denn es bindet nur die jeweiligen Funktionsdateien ein, wenn diese wirklich benötigt werden.