Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] psr4 autoload

Einklappen

Neue Werbung 2019

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

  • [Erledigt] psr4 autoload

    Hi, ich wühl mich grade durch den psr4 standard für autoloading, dort hab ich den schönen satz gesehen:
    The terminating class name corresponds to a file name ending in .php
    Bedeutet das, dass man keine files autoloaden soll, die z.B. .phtml haben? Denn ich übergebe meinem Autoloader ein array von fileendungen, die er prüft, ob die datei mit der jeweiligen endung existiert, und bei existens einbindet. Jetzt bin ich aber etwas verwirrt nach diesem satz.


  • #2
    Hallöchen,

    wozu brauchst du denn .phtml als Dateiendung?

    Viele Grüße,
    lotti

    Kommentar


    • #3
      Mal kurz als Rückfrage: Warum willst du denn PHP-Klassen in Dateien speichern, die nicht auf .php enden?

      Kommentar


      • #4
        Welchen Grund gibt es .phtml-Dateien mit einem Autoloader zu laden? Für sowas nimmt man idR eine Template-Engine, die viel spezifischer auf die Charakteristik eines Templates eingehen kann und meistens auch selbst das Laden von Template-Files übernimmt.

        Zudem: Warum selbst einen PSR-4 Autoloader schreiben, wenn man den von Composer nutzen kann?

        PHP-Code:
        {
            ...
            
        "autoload": {
                
        "psr-4:": {
                    
        "My\\Prefix\\""src/"
                
        }
            }
            ...

        Standards - Best Practices - AwesomePHP - Guideline für WebApps

        Kommentar


        • #5
          Ist ne convention, dass views z.B. in .phtml gespeichert werden.

          Kommentar


          • #6
            Zitat von hartCoder Beitrag anzeigen
            Ist ne convention, dass views z.B. in .phtml gespeichert werden.
            Denke, das ist allen klar...
            Standards - Best Practices - AwesomePHP - Guideline für WebApps

            Kommentar


            • #7
              Meine Frage wurde noch nicht beantwortet.

              Kommentar


              • #8
                Beantworte erst mal die von mermshaus, dann sehen wir weiter.
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar


                • #9
                  Jetzt sei nicht unverschämt rkr.

                  Kommentar


                  • #10
                    Ok, ich bin raus hier.
                    Standards - Best Practices - AwesomePHP - Guideline für WebApps

                    Kommentar


                    • #11
                      Zitat von hartCoder Beitrag anzeigen
                      Hi, ich wühl mich grade durch den psr4 standard für autoloading, dort hab ich den schönen satz gesehen: Bedeutet das, dass man keine files autoloaden soll, die z.B. .phtml haben? Denn ich übergebe meinem Autoloader ein array von fileendungen, die er prüft, ob die datei mit der jeweiligen endung existiert, und bei existens einbindet. Jetzt bin ich aber etwas verwirrt nach diesem satz.
                      Das sollte mehr bedeuten, dass die Klasse die in der Datei enthalten ist auch von Dateinamen her erahnt werden kann.

                      z.B. Eine Klasse "ControllerPageHome"

                      sollte dann entweder in einer Ordnerstrucktur framework/controller/page/home.php oder einem statischen Ordner framework/controller.page.home.php münden... oder wie auch immer, kommt je nach Projektstruktur darauf an wie du deine autoload bauen möchtest und auch reine Geschmackssache.

                      Ich tendiere eher zu einer strukturierten Ordnerstruktur.

                      D.h: deine Klasse sollte dann nicht unter /a/b/ichbintoller.php zu finden sein
                      Homepage: www.jplace.de

                      Github: JohnnyDevNull

                      Kommentar


                      • #12
                        phtml für klassen definitionen zu nutzen halte ich für abwegig. phtml deutet darauf hin das dort hauptsächlich html vorzufinden ist. Zumindest würde ich das erwarten.
                        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                        Kommentar


                        • #13
                          Und inwiefern beantwortet das meine Frage?

                          Kommentar


                          • #14
                            Die Anwort auf deine Frage ist, das du nicht Konfliktlego im Forum spielen sollst und deine Standard-Adaption machbar ist, aber abwegig, weil man nur Klassen "Autoloaded" ( die 2-3 script-fetzen die man noch autoloaden möchte kriegt man auch mit include auf die reihe ).
                            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                            Kommentar


                            • #15
                              Hallöchen,

                              Zitat von hartCoder Beitrag anzeigen
                              Ist ne convention, dass views z.B. in .phtml gespeichert werden.
                              Das darfst du nicht in einen Topf werfen. Der PSR4-Autoloader ist dafür gedacht Klassen-Definitionen automatisiert zu laden, wann immer Bedarf besteht. Das Laden von Views, welche aus HTML und ein wenig Logik bestehen, überlässt man der Template-Engine oder einer untergeordneten Komponente - wie bspw. bei Twig.

                              Viele Grüße,
                              lotti

                              Kommentar

                              Lädt...
                              X