Scripts modular aufbauen

Sir Robin

Erfahrenes Mitglied
Guten Morgen,

ich bastel grad an nem größeren Script und würde es gerne modular aufbauen...doch wie macht man das am besten? Kennt jemand vielleicht Artikel dazu oder hat jemand Tipps für mich? Danke auf jeden Fall...

(P.S.: Die Suchfunktion hat mich nicht weitergebracht)
 
Funktionen oder auch Klassen

hi,
also code den du häufiger benutz in kleine funktionen kapseln.
und diese dann in eigene Dateien ausgliedern.

diese dann einfach includen..
das ist Modulares Programmieren.

Beachte das in Funktionen die Variablen von ausserhalb nicht unbedingt
sichtbar sind.

mage
 
Re: Funktionen oder auch Klassen

Original geschrieben von mage

Beachte das in Funktionen die Variablen von ausserhalb nicht unbedingt
sichtbar sind.

Erstmal natürlich danke...so ähnlich waren meine Überlegungen auch...aber diese zitierte Satz von dir macht mir leicht zu schaffen...was meinst du genau damit? (ich hab da so die Vorstellung das in den Funktionen die Variablen anders heißen (je nachdem wie benannt) als sie dann im Script heißen)

soll heißen:

wenn:

PHP:
<?php

function machmalecho($var){

echo $var

}

?>

...die Funktion darstellt dann muss sie nicht unbedingt mit "machmalecho($var);" aufgerufen werden, sondern kann auch mit "machmalecho($voelliganderername);" aufgerufen werden...

das war jetzt wie ich das verstanden hab...und ich werde das dumme Gefühl nicht los das das absolut falsch ist...

danke aber auf jeden Fall...bekommst gleich mal ne positive Bewertung...



Nachtrag:

Oder meinst du das man die Variablen ggf. als global definieren muss?
 
Zuletzt bearbeitet:
global

Ja richtig du musst entweder die Variablen gloabl deklarieren oder
sie als Parameter übergeben.

PHP:
$lokaleVar = 10;
global $globaleVar = 100;
$parameter = 1000;

function ausgabe($argument)
{
echo 'lok: '.$lokaleVar; // diese sieht er nicht kommt 0 raus
echo 'glob: '.$globaleVar; // diese gibt auch die 100 aus
echo 'Param:'.$parameter; // diese ist auch 0 weil er diese nicht kennt
echo 'arg: '.$argument // ausgabe ist abhänig vom aufruf
}

ausgabe($parameter); // bei arg kommt jetzt 100 raus
ausgabe(12); // bei arg kommt jetzt 12 raus
ausgabe('Hallo'); // sehr unschön funktioniert auch kommt bei arg  
                  // kommt hallo raus, solche sachen sollte man tunlist
                  // vermeiden

so ich hoffe das war so relativ verständlich
wenn ich Fehler gemacht hab möge man mich verbessern.

mage
;-)
 
@Sir Robing

Mich würde interessieren, an was für einer art projekt du da arbeitest, da imho modulares programmieren in php- zumindest für den eigentlich gedachten anwendungsbereich von php- nicht unbedingt sinnvoll ist. Klar gibt es hier und da mal ein paar funktionen, aber im grossen und ganzen wiederholt sich nicht sehr oft der code, und include wirt wohl auch nicht benutzt um einzelne dateien mit jeweils einer oder wenigen funktionen zu includen. Das kostet alles Speed, dafür ist doch C/C++ zb geeignet.
 
Hmm ... da habe ich vielleicht ein passendes Beispiel zur Hand:

klick

Soweit ich das verstanden habe, müsste sich das soch ebenfalls um modulares Programmiere handeln, oder ? Wenn noch jemand Zeit und Lust hat, dann könnte er ja vielleicht den Leuten dort ein bisschen helfen :)
 
@mage: Danke! (mehr gibt´s da grad nicht zu sagen)

@godwich: Im Prinzip handelt es sich um ein CMS, welches zur Zeit noch klein ist, aber da ich das Teil später noch einmal auf Seiten einsetzen will, ohne wieder neu programmieren zu müssen, dachte ich mir das modulare Programmierung dafür was feines wäre. Zumal ich später einfach neue Funktionen hinzufügen will, oder eben welche abschaltn, je nach Projekt.

Außerdem hat es mich einfach mal so interessiert (man will sich ja weiterbilden)

Aber dein Argument mit dem Speed kann ich nicht nachvollziehen...was genau zieht Speed am modularen Programmierstil? Ich könnt mir vorstellen das vielleicht der allgemeine Programmierstil den Speed zieht...seh ich das da richtig? Danke auch dir...

@storch: ich werde mir das Beispiel mal angucken...
 
funktionen tragen ganz klar zur allgemeinen performance positiv bei.
Ich dachte nur, dass ein script immer langsamer wird, um so mehr seiten man includet.

wenn zB ein script hast, was 100 variablen aus 100 dateien includet, und sie dann ausgibt, ist dies mit sicherheit langsamer, als wenn alle variablen im script festgelegt wären (also nicht includet sondern einfach in der datei stehen)

aber ob man dies nun in der praxis merkt oder nicht- ka, würds auch gerne wissen :)
 
geschwindigkeit

also es ist ganz klar das wenn man zig dateien statt einer included,
es natürlich viel länger dauern, da ja php dann statt einem
Zugriffs aufs Dateisystem soviele wie included werden muessen.
Man könnte das sogar in einer Formel ausdruecken.

gesamtZeit = ZeitDesDateizugriffes * AnzahlDerIncludes :-)

Zur der Sache Funktionen, meines Wissens
bringen Funktionen immer Performanceeinbusen.
Da ja die Adresse der funktion geladen werden muss, dort die nächsten
Befehle ausgelesen werden, abgearbeitet, wieder zurückgesprungen werden.
usw.
Das ist alles schon sehr maschinennah, wer sich mit Assembler beschäftig wird das wissen.
Aber die Zeiten sind bei normalen Programmiersprachen so gering, bei
den emensen Vorteilen.
Es geht dabei um Taktzeiten des Prozessors :)
So isses jedenfalls bei den normalen komplierten Sprachen.
Wie es sich nun genau bei php verhält weiss ich auch nicht zu sagen.

Noch ein permformance-tip am Rade bei strings sind '' dem "" vorzuziehen.

mage
 
@mage: Wäre es nicht besser, wenn man eine Variable nicht allgemein global definiert, sondern nur in der Funktion, also so:
PHP:
$MyVar = 100;
function echoSomeVar($Var)
{
    global $MyVar;
    echo $MyVar;
}
Denn dann könnt Sie nur von der einen Funktion aufgerufen werden, oder liege ich da falsch?
 
Zurück