Ankündigung

Einklappen
Keine Ankündigung bisher.

mehrere Autoloader - Überschneidungen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mehrere Autoloader - Überschneidungen?

    Hallo,

    über spl_autoload_register() kann man ja beliebig viele Autoloader registrieren - das wird oft als Vorteil für grosse Projekte hingestellt, für Plugins etc. Wie verhindert man dann, dass es zu Überschneidungen kommt?

    Sehe ich mir das Beispiel hier an (Mulitple Autoloads):

    http://www.phpro.org/tutorials/SPL-Autoload.html

    wird die Klasse "norman" aus einem der beiden Verzeichnisse eingebunden. Das heisst, es darf die Klasse garnicht erst in beiden Verzeichnissen geben.

    Hier wird das ja noch schlimmer (Autoloading in the “Olden Days”):

    http://www.sitepoint.com/autoloading...sr-0-standard/

    Entwickelt man sein Projekt für MVC hätte man ja immer die gleichen Namen - z.B. in jedem Verzeichnis eine Klasse "Database". Geht ja schonmal garnicht.

    Teilt man das über den Namen ein (DatabaseController, DatabaseModel, DatabaseView) kann man sich aber auch gleich mehrere Autoloader sparen.

    Ja und dann ist da noch PSR-0, schön und gut, dann müssen sich die Module aber auch daran halten. Guck ich da einfach mal in ein bekanntes Projekt rein

    https://github.com/PHPMailer/PHPMail...erAutoload.php

    ist davon aber so rein garnichts zu sehen.

    Noch schlimmer wird es, wenn ich dann selber mal eine Datei class.foo.php nenne - da übernimmt der fremde Autoloader ja die Kontrolle.

    In irgendeinem Thread hab ich gelesen (meine es war zu Joomla), der "System"-Autoloader sollte sogar zuletzt ausgeführt werden - dann bekommen doch die Module ggf. irgendwelche Klassen geliefert, die garnicht denen gehören, sondern zum ursprünglichen Projekt.

    Also ich sehe bei mehreren Autoloadern viel Potential dafür, dass die sich in die Quere kommen.

    Was meint ihr dazu? Wie ist das bei euch gelöst?

    MfG
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.


  • #2
    Halte dich an PSR-4 dann gibts keine Überschneidungen.

    Zitat von chorn Beitrag anzeigen
    Noch schlimmer wird es, wenn ich dann selber mal eine Datei class.foo.php nenne - da übernimmt der fremde Autoloader ja die Kontrolle.
    Nein tut er nicht, da du ja einen Namespace nutzt wie vom PSR-4 vorgesehen.

    Zitat von chorn Beitrag anzeigen
    Entwickelt man sein Projekt für MVC hätte man ja immer die gleichen Namen - z.B. in jedem Verzeichnis eine Klasse "Database". Geht ja schonmal garnicht.
    Ich wüsste zwar nicht, warum du in jedem Ordner eine Klasse "Database" brauchst aber auch die kommen sich nicht in die Quere, da sie verschiedene Namespaces haben.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar

    Lädt...
    X