anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: So 15 Jun, 2025 20:35

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: common.php zerlegen
BeitragVerfasst: So 26 Nov, 2006 22:29 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Di 14 Jun, 2005 10:52
Beiträge: 78
Wohnort: Zusmarshausen
Geschlecht: Männlich
hi @ all,
Ich wollt mal die PHP-/Apache-Freaks fragen, wie folgendes Performacetechnisch sich auswirkt:

ich habe die common.php zerlegt und alle einzelnen Funktionen in einzelne Files gepackt (ausser ein paar ein- und zweizeilige Funktionen) siese rufe ich alle per require-befehl auf....

das ganze hat sicher folgende vorteile:
    übersichtlicher :
      - sofort ersichtlich in welcher Funktion der Fehler liegt
      - weniger code-zeilen pro file
    leichter funktionen hinzuzufügen - nur noch in ein file packen und in den ordner legen


Ich glaube das sich dieses warscheinlich weder positiv noch negativ auf die Performace aufwirkt (wenn dann kaum spürbar oder???)
aber, ich will dem ganzen noch eine Funktion "vorsetzen", die nur benötigte module läd - dies sollte sicherlich eine schnellere verarbeitung ermöglichen...

greetz

theTJ


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
theTJ

back @anpera.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Nov, 2006 22:40 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Es ist definitiv langsamer. Sogar spürbar.
Zumindest verlangsamte das Einbinder ausgelagerter Funktionen auf meinem lokalen Apache den Seitenaufbau von ungefähr 0.01 auf 0.05 - 0.1

Funktionen sinnvoll zusammenfassen ist besser als jede Funktion eine Datei. (z.B. "output.php" für output, rawoutput, addnav, appoencode, etc.., "commentary" für viewcommentary, addcommentary).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Nov, 2006 22:48 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Di 14 Jun, 2005 10:52
Beiträge: 78
Wohnort: Zusmarshausen
Geschlecht: Männlich
Eliwood hat geschrieben:
Es ist definitiv langsamer. Sogar spürbar.
Zumindest verlangsamte das Einbinder ausgelagerter Funktionen auf meinem lokalen Apache den Seitenaufbau von ungefähr 0.01 auf 0.05 - 0.1

Funktionen sinnvoll zusammenfassen ist besser als jede Funktion eine Datei. (z.B. "output.php" für output, rawoutput, addnav, appoencode, etc.., "commentary" für viewcommentary, addcommentary).


ok thx für das schnelle feedback...
naja... die kombination von Funktionen hab ich noch keine wirklich sinnvolle gefunden daher...

aber was mich noch interessieren würde wie sieht es wohl aus, wenn man eine Funktion etwa folgender art "vorschiebt":

[php]
function modul($module=true) {
if(module) {
/* lad alle */
} else {
if(is_array($module) {
/* lad alle module sie im array stehen */
} else {
/* lad nur das eine modul */
}
}
}[/php]

_________________
theTJ

back @anpera.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Nov, 2006 22:53 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Würde sicher "besser" sein, als immer alles laden.
Noch besser wäre, sofern Objekte vorhanden wäre, die Funktion __autoload(), damit man die Dateien automatisch einbinden könnte...

Ich schlage vor:
Die Grundfunktionen in wenige Dateien speichern und bereits in der common einbinden. Dann entweder über eine Hilfsfunktion, oder einfach so, oder über eine Konstande die Datei einbinden. Zum Beispiel:

[php]<?php
define('NEED_FOREST', true);
Require_once 'common.php';

## common.php:
if(defined('NEED_FOREST') && NEED_FOREST === true)) {
Require_once $library.'forest'.$ext;
}[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Nov, 2006 23:06 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Di 14 Jun, 2005 10:52
Beiträge: 78
Wohnort: Zusmarshausen
Geschlecht: Männlich
Eliwood hat geschrieben:
Würde sicher "besser" sein, als immer alles laden.
Noch besser wäre, sofern Objekte vorhanden wäre, die Funktion __autoload(), damit man die Dateien automatisch einbinden könnte...

Ich schlage vor:
Die Grundfunktionen in wenige Dateien speichern und bereits in der common einbinden. Dann entweder über eine Hilfsfunktion, oder einfach so, oder über eine Konstande die Datei einbinden. Zum Beispiel:

[php]<?php
define('NEED_FOREST', true);
Require_once 'common.php';

## common.php:
if(defined('NEED_FOREST') && NEED_FOREST === true)) {
Require_once $library.'forest'.$ext;
}[/php]


Die idee mit der konstanten ist gut...
und dann schnürt man eben Pakete wenn verschiedene Konstanten gesetzt sind....
ok, aber was bitte ist __autoload() ???

http://de.php.net/manual/de/function.spl-autoload.php

^^das ist das einzige was ich zu dem thema jetzt grad gefunden hab... und das klingt irgentwie komisch... - besonders weil nicht auf deutsch vorhanden ;-)

so long

ich geh jez :zzz:

und bastel dann morgen mal daran weiter ;-)

greetz
theTJ

_________________
theTJ

back @anpera.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 27 Nov, 2006 00:09 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
(lang lang ist's her das ich in dem bereich geschrieben hab. *Party schmeiß*)

Hallo theTJ,
Versuche es mal hier http://www.phpbar.de/w/autoload() und
hier (am besten beide Links ansehen).

Mfg Garlant


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 27 Nov, 2006 19:48 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Di 14 Jun, 2005 10:52
Beiträge: 78
Wohnort: Zusmarshausen
Geschlecht: Männlich
Garlant hat geschrieben:
(lang lang ist's her das ich in dem bereich geschrieben hab. *Party schmeiß*)

Hallo theTJ,
Versuche es mal hier http://www.phpbar.de/w/autoload() und
hier (am besten beide Links ansehen).

Mfg Garlant


thx werd mir das dann wohl mal genauer ansehen^^

€dit:
Klingt eigentlich ganz Interessant...
aber dann müsste man doch alle Funktionen in Klassen umschreiben... (0.9.7) oder? kann ich beim erzeugen eines Objekts einer klasse auch einfach nur sagen, dass die zugehörigen Dateien geladen werden sollen?!?

naja ich schau mir mal noch php.net an...

_________________
theTJ

back @anpera.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 06 Jan, 2007 17:58 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Di 14 Jun, 2005 10:52
Beiträge: 78
Wohnort: Zusmarshausen
Geschlecht: Männlich
sry, für den doppelpost, aber ich wollt mal aufzeigen, wie ich die ganze sache jetzt gelöst habe...:

[php]
function callcomm($commonpart='commentary') {
if(file_exists("lib/$commonpart.lib.php")) {
require_once "lib/$commonpart.lib.php";
} else {
if(!headers_sent()) header('content-type: text/plain');
echo "$commonpart wurde in der LIB nicht gefunden, bitte informiere den Admin";
exit;
}
}
[/php]

das default, ist nur daher drin, da ich am anfang nur die Commentaryfunktionen in der commentary.lib.php ausgelagert hatte...

dann habe ich die forest() in die forest.lib.php ausgelagert und den Parameter dieser funktion hinzugefügt^^

aufgerufen werde die dateien, - die sich inzwischen im ordner "lib" befinden - mit folgender zeile
[php]
callcomm('commentary'); //für add und viewcommentary
[/php]

lohnt sich halt nur bei funktionen die in relativ wenigen Files benutzt werden...

ich hab z.zt.:
    commentary (add und view)
    forest
    showform

ausgelagert...

greetz
theTJ

_________________
theTJ

back @anpera.net


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum