framework - eigene klasse für pfad definitionen ?

  • framework - eigene klasse für pfad definitionen ?

    ich bin am überlegen eine klasse für pfaddefinitionen in meinem framework einzubinden
    das ganze als singleton (war fast zu erwarten) bei der ich dann z.b. folgende methoden anbiete

    PHP-Quellcode

    1. $this-path =& singleton('path'); // selbsterklärend
    2. $this->path->add_path('absoluter oder relativer pfad', 'kurzname', 'gruppenzugehoerigkeit');
    3. include ($this->path->{'kurzname'} . 'datei.extension');
    4. foreach($this->path->list('gruppenzugehoerigkeit) as $pfadname)
    5. {
    6. ...
    7. }


    somit habe ich alle pfade als "shortcut" wenn ich genau weis dass da die datei liegt die ich brauche
    und über die list() methode habe ich ein array mit pfaden (z.b. bei mehreren configurationspfaden oder mehreren library pfaden)

    macht es sinn so eine klasse zu entwickeln und einzubinden ? oder ist der zugriff über pfadangaben per define sehr viel performanter ?

    aus meiner sicht hat die zuweisung per define oder direkt im script einige nachteile oder anders eine klasse einige vorteile

    Vorteile:
    - pfade werden nur einmal angelegt (und können bei der anlage bereits verifiziert werden)
    - pfade können zu gruppen geaddet werden, so dass man eine verzeichnissliste zum arbeiten hat
    - pfadangaben können relativ ('pfad/subpfad') oder absolut ('/usr/local/pfad/subpfad') angegeben werden und werden einheitlich als absolute pfade geaddet
    - pfadangaben sind immer einheitlich und die pfade sind immer auch vorhanden (siehe 1.)
    - pfade sind (wie bei defines) in jedem scope verfügbar (add über singleton)
    - pfade können (ist aber glaube ich nicht so interessant) zur laufzeit geändert werden

    Nachteile
    - evtl nicht so performant


    liege ich mit meiner aussage einigermasen richtig oder gibt es kommentare, verbesserungen, anregungen, etc ?

    lg

    Nico aka das entchen
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • Hi,
    ich sehe eigentlich keinen großen Vorteile der Klasse.
    Für Includes würde ich allgemein zu Autoloader Klassen raten, siehe Geschwindigkeit von __autoload
    Was bleibt ist ein UPLOAD_DIR und ein TMP_DIR, sonst fallen mir keine Beispiele ein, wo ich pfade brauche ;)

    - pfade werden nur einmal angelegt (und können bei der anlage bereits verifiziert werden)
    * Zur Laufzeit sollte man keine Pfade validieren müssen
    - pfade können zu gruppen geaddet werden, so dass man eine verzeichnissliste zum arbeiten hat
    * Hierbei sehe ich eigentlich keinen Vorteil - du kannst auch mehrere Konstanten haben LIBRARY_DIR, FRAMEWORK_DIR, ...
    - pfadangaben können relativ ('pfad/subpfad') oder absolut ('/usr/local/pfad/subpfad') angegeben werden und werden einheitlich als absolute pfade geaddet
    * Zum einen mag ich Frameworks nicht bei denen man die selben Sachen über x verschiedene Wege lösen kann - das führt nur zu Chaos
    * Zum anderen sollte es in deinem Code keine absoluten Pfadangaben geben.
    * Ich persönlich arbeite immer nur mit einem BASEDIR. dirname(__FILE__)
    - pfadangaben sind immer einheitlich und die pfade sind immer auch vorhanden (siehe 1.)
    - pfade sind (wie bei defines) in jedem scope verfügbar (add über singleton)
    - pfade können (ist aber glaube ich nicht so interessant) zur laufzeit geändert werden