Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 6
Seite [1]
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Thema - 26.09.2012 um 12:21 Uhr
Hi Leutz,

meine Frage bezieht sich speziel auf die Runtime.
Ist es sinnvoller, die Pfade der Dateien im Include über die PHP Var: include_path regeln zu lassen, oder sollte man immer den Pfad mit angeben ?!

Beispiel:
Normaler include:
 
1.
1. / 2. / ... 
 require_once 'libs' DS 'adodb5' DS 'adodb.inc.php';


Include ohne Pfade:
 
1.
1. / 2. / ... 
 require_once 'adodb.inc.php';

Da ich vorher bereits die Pfade im php include_path habe:
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
1. / 2. / ... 
 function scanDirectorys($directory APP_PATH)
{
    
$verz opendir($directory);
    while (
$file readdir($verz)) {
        
$path $directory $file;
        if (
is_dir($path) && $file != "." && $file != "..") {
            
/* Include Pfad setzen */
            
set_include_path(get_include_path() . PATH_SEPARATOR $path DS);
            
            
/* Recursion */
            
scanDirectorys($path DS);
        }
    }
    return;
}

Zieht sich "require_once" die Pfade aus dem include_path.

Was ist nun aber schneller ?

Hinweis: Dass ich dann keine Dateien mit gleichem Namen im Projekt nutzen kann, ist mir bewusst. Wird aber auch nicht vorkommen.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.
Inaktiv
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 1 - 26.09.2012 um 14:44 Uhr
Gehts dir nur um die Geschwindigkeit?

Dann vermute ich mal, dass es mit Pfad schneller geht, weil ja sonst für jedes require im schlimmsten Fall alle Include-Paths durchsucht werden müssen und das sind so wie du sie rekursiv aufbaust ja auch noch besonders viele.

Ich frage mich wie du es sinnvoll hinbekommen willst keine Dateien doppelt zu benennen. Denn grade die Möglichkeit in zwei unterschiedlichen Ordnern gleichnamige Dateien zu haben hilft ja der Strukturierung. Wenn sowieso alle Dateien unterschiedlich heissen, bräuchte man ja keine Ordner.


------------------
www.laszlokorte.de

Inaktiv
|
Fr33z3m4n ClanSphere Team
Thread-Ersteller


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 2 - 26.09.2012 um 15:06 Uhr
Naja, nicht nur Geschwindigkeit, auch Lesbarkeit und Handling im Core.

Also bislang gibt es das Projekt nicht her, gleichnamige Dateien zu haben.
Will es aber nicht zu 100% ausschließen.

Aber denke mal, dass ich beim Require auf die alte Art wieder umstelle (also mit Pfadangaben). Ich denke mal, dass die Geschwindigkeit davon nur nutzen hat. Wenn man überlegt, dass er dann erst alle vorhandenen Verzeichnissen durchsuchen müsste :(

Aber hab auch schon einige Lösungsansätze gesehen, die nutzen einen autoloader mit einem ClassenIndex. Verstanden wie das Framework funktioniert hab ich, aber noch nicht den wirklichen Sinn.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 3 - 26.09.2012 um 19:26 Uhr
Arbeitest du mit Klassen oder mit normalen Functions?

Sofern mit Klassen, würde ich ebenso einen Autoloader nehmen. Dort kanns du dann den Includepfad auch noch genauer handlen.


Inaktiv
|
Fr33z3m4n ClanSphere Team
Thread-Ersteller


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 4 - 27.09.2012 um 13:20 Uhr
26.09.2012 um 19:26 Uhr - Schalla:
Arbeitest du mit Klassen oder mit normalen Functions?

Sofern mit Klassen, würde ich ebenso einen Autoloader nehmen. Dort kanns du dann den Includepfad auch noch genauer handlen.

Beides.
__autoload ist seit Anfang des Projekts schon implementiert.
Dort wurden auch die include_Paths gesetzt.
Wollte es mir nur einfacher machen. Was für mich einfacher ist, ist für die Runtime aber leider länger

Hab daher das Scannen der Ordner und hinzufügen derer in den include_path wieder verworfen.
Nun erledigt das der autoloader wieder für mich.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
hajo ClanSphere Team


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 5 - 29.09.2012 um 12:40 Uhr
würde an deiner stelle die vollen pfade nutzen um konflikte zu vermeiden. zudem kann der autoloader den anfangsteil davon ja intellligent bestimmen und anfügen ab dem root der software z.b.

autoloading sollte per spl autoload register angehängt werden, um probleme mit evtl. späteren erweiterungen zu vermeiden.


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Fr33z3m4n ClanSphere Team
Thread-Ersteller


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 6 - 29.09.2012 um 17:39 Uhr
autoloading sollte per spl autoload register angehängt werden, um probleme mit evtl. späteren erweiterungen zu vermeiden.

Was anderes nutz ich auch nicht


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Antworten: 6
Seite [1]


Sie müssen sich registrieren, um zu antworten.