Ankündigung

Einklappen
Keine Ankündigung bisher.

Video tutorial: Einführung in PSR-0 Autoloading

Einklappen

Neue Werbung 2019

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

  • Video tutorial: Einführung in PSR-0 Autoloading



    Hi im heutigen Video etwas einfacheres, Autoloading und PSR-0, (auf Composer werde ich noch eingehen) Viel Spaß.
    apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

  • #2
    Ich fang mal an,
    auszusetzen habe ich an dem video nichts!
    naja man könnte rootdir noch variablen machen, aber ob es das bringt ?

    die sprache ist wesentich flüssiger und natürlicher, nur manchmal hackt noch die betonung.

    Kommentar


    • #3
      Zitat von tomBuilder Beitrag anzeigen
      Ich fang mal an,
      auszusetzen habe ich an dem video nichts!
      yaay
      Zitat von tomBuilder Beitrag anzeigen
      naja man könnte rootdir noch variablen machen, aber ob es das bringt ?
      Was meinst du damit?

      Zitat von tomBuilder Beitrag anzeigen
      die sprache ist wesentich flüssiger und natürlicher, nur manchmal hackt noch die betonung.
      Danke, nächstes mal schreibe ich kein Script sondern mache wie damals mit PowerPoint, einfach stichpunkte aufschreiben und darüber erzählen, spart bestimmt mir Zeit ein
      apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

      Kommentar


      • #4
        • ~03:15 Vorschlag: Ich habe meine Autoloader als Klasse abgebildet und liefere über eine kleine Config die möglichen Ordner-Pfade. So kann ich bei Erweiterung der Ordner-Struktur reagieren, ohne den Autoloader selbst anfassen zu müssen.
        • ~03:31 Windows versteht auch Slash, die Separierung ist nicht zwingend erforderlich.
        • ~06:15 pathinfo() liefert alles, was man benötigst.
        • ~05:30 Escaping erklärst Du in einem anderen Video, aber Namespaces werden einfach mal so mit reingeworfen? Ich denke, das könnte "Anfänger" überfordern.
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Zitat von Arne Drews Beitrag anzeigen
          • ~03:15 Vorschlag: Ich habe meine Autoloader als Klasse abgebildet und liefere über eine kleine Config die möglichen Ordner-Pfade. So kann ich bei Erweiterung der Ordner-Struktur reagieren, ohne den Autoloader selbst anfassen zu müssen.
          Ja da ist dan PSR-4, soweit ich verstanden habe, erlaubt er auch nicht mehr _ für Ordner

          Zitat von Arne Drews Beitrag anzeigen
          • ~03:31 Windows versteht auch Slash, die Separierung ist nicht zwingend erforderlich.
          Ja aber ich dachte mir, DIRECTORY_SEPERATOR muss auch erwähnt werden und ich habe mich auf den PSR-0 Beispiel Code bezogen.
          Zitat von Arne Drews Beitrag anzeigen
          • ~06:15 pathinfo() liefert alles, was man benötigst.
          Ja aber auf der Offiziellen Seite von PSR-0 ist da halt ein strpos

          Zitat von Arne Drews Beitrag anzeigen
          • ~05:30 Escaping erklärst Du in einem anderen Video, aber Namespaces werden einfach mal so mit reingeworfen? Ich denke, das könnte "Anfänger" überfordern.
          Naja du musst ja nicht escaping in Detail verstehen, es reicht aus zu wissen dass du über die Namespaces dann 1 zu 1 die Ordnerstruktur abbildest. Ich werde es sehen wenn es Anfänger überfordert wenn diese mir Fragen stellen. Es seidenn niemanden Interessiert es und es kommen keine Fragen
          apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

          Kommentar


          • #6
            Zitat von BlackScorp Beitrag anzeigen
            Ja aber auf der Offiziellen Seite von PSR-0 ist da halt ein strpos
            Bei solchen Dingen versteckst Du Dich meiner Meinung nach zu sehr hinter der PSR. Die PSR gibt auch nur Richtlinien vor, kann Dir aber nicht vorschreiben, mit welchen PHP-Funktionen Du zum - auch von den PSR akzeptierten - Ziel kommst. Deshalb heißen die Code-Blöcke auch Example.

            Mal abgesehen davon verstehe ich nicht, warum Du Dich zwingend auf die PSR-0 berufst:
            Deprecated - As of 2014-10-21 PSR-0 has been marked as deprecated. PSR-4 is now recommended as an alternative.
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Zitat von Arne Drews Beitrag anzeigen
              Bei solchen Dingen versteckst Du Dich meiner Meinung nach zu sehr hinter der PSR. Die PSR gibt auch nur Richtlinien vor, kann Dir aber nicht vorschreiben, mit welchen PHP-Funktionen Du zum - auch von den PSR akzeptierten - Ziel kommst. Deshalb heißen die Code-Blöcke auch Example.

              Mal abgesehen davon verstehe ich nicht, warum Du Dich zwingend auf die PSR-0 berufst:
              Das hat sein Grund, ich brauche eine Überleitung auf Composer um damit weitere Überleitungen zu anderen Tools zu machen. Mir ist das mit Deprecated clar
              apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

              Kommentar


              • #8
                Gut gemacht und als Einführung zur Funktionsweise des Autoloading total ausreichend.
                Den Tipp gegen Ende des Videos mit dem Hack zum Laden von Funktionen halte ich aber für überflüssig.
                Anstelle eine Dummy-Klasse aufzurufen welche die Funktionen mit lädt können die Funktionen doch gleich als statische Methoden einer Klasse ( = Funktionsbibliothek) realisiert werden und diese können dann z.B. mit
                PHP-Code:
                $value Db::meineFunktion1(); 
                einfach aufgerufen werden.
                Mir ist kein Fall bekannt, wo in PHP eine Funktion benötigt wird was nicht auch durch den Aufruf einer statischen Methode abgedeckt werden kann.

                Kommentar


                • #9
                  Zitat von jspit Beitrag anzeigen
                  Gut gemacht und als Einführung zur Funktionsweise des Autoloading total ausreichend.
                  Den Tipp gegen Ende des Videos mit dem Hack zum Laden von Funktionen halte ich aber für überflüssig.
                  Anstelle eine Dummy-Klasse aufzurufen welche die Funktionen mit lädt können die Funktionen doch gleich als statische Methoden einer Klasse ( = Funktionsbibliothek) realisiert werden und diese können dann z.B. mit
                  PHP-Code:
                  $value Db::meineFunktion1(); 
                  einfach aufgerufen werden.
                  Mir ist kein Fall bekannt, wo in PHP eine Funktion benötigt wird was nicht auch durch den Aufruf einer statischen Methode abgedeckt werden kann.
                  Es war halt darauf bezogen, wenn du schon eine Codebasis hast und in meisten Fällen hast du sowieso pro Datei eine Einordnung, dann kannst du mit zwei Zeilen code an jeder Datei deine includes überflüssig machen. Also aktuellen Code mit wenig Handgriffe verändern.

                  apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                  Kommentar


                  • #10
                    Das Video hat mir auch sehr gut gefallen. Man merkt dass deine Videos immer besser werden.

                    Ggf. noch eine Video Idee:
                    Ich denke vielen Anfängern würde noch ein Video helfen, wie man mysql durch mysqli oder pdo ersetzt. Die Frage kommt aktuell ja wieder relativ häufig hier im Forum auf.

                    Kommentar


                    • #11
                      Zitat von Zeichen32 Beitrag anzeigen
                      Das Video hat mir auch sehr gut gefallen. Man merkt dass deine Videos immer besser werden.
                      Danke, ich gebe mein bestes
                      Zitat von Zeichen32 Beitrag anzeigen
                      Ggf. noch eine Video Idee:
                      Ich denke vielen Anfängern würde noch ein Video helfen, wie man mysql durch mysqli oder pdo ersetzt. Die Frage kommt aktuell ja wieder relativ häufig hier im Forum auf.
                      Sehr gute idee. Ist notiert. Dass ich selbst nicht drauf gekommen bin
                      apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                      Kommentar


                      • #12
                        Zitat von BlackScorp Beitrag anzeigen

                        Es war halt darauf bezogen, wenn du schon eine Codebasis hast und in meisten Fällen hast du sowieso pro Datei eine Einordnung, dann kannst du mit zwei Zeilen code an jeder Datei deine includes überflüssig machen. Also aktuellen Code mit wenig Handgriffe verändern.
                        Akzeptiere ich als Motiv. Was die Realisierung betrifft hab ich noch was zu meckern..

                        Das Laden der Datei in welcher sich deine Funktionen befinden wird ja im Video als Beispiel so gemacht:
                        PHP-Code:
                        Db::functions
                        Für Fremde welchen den Code lesen ist das verwirrend, denn die Notation einer Konstante in dieser Form macht im Normalfall nichts. Es juckt förmlich in den Fingern diese (hier wichtige) Zeile zu entfernen.

                        Etwas besser finde ich dies:
                        PHP-Code:
                        new Db
                        Die Konstante in der Klasse wird bei dieser Variante gar nicht benötigt. Es reicht hier, eine leere Klasse mit in die Datei zu setzen (Hab mal die Namespaces zur Vereinfachung weggelassen) :
                        PHP-Code:
                        class Db{} 
                        Alternativ kann anstelle der Konstante auch eine leere statische Funktion in die Klasse geschrieben werden. So erhalten wir eine "sprechende" Variante:
                        Lib1.php :
                        PHP-Code:
                        class Lib1{
                          public static function 
                        load(){}
                        }

                        //Beispielfunktion
                        function myFunction1()
                        {
                          return 
                        __FUNCTION__;

                        Bei dieser Notation versteht dann auch jeder was gemacht wird:
                        PHP-Code:
                        Lib1::load();
                        echo 
                        myFunction1(); 
                        LG jspit

                        Kommentar


                        • #13
                          Stimmt, eine Funktion wäre eventuell besser, im Nachhinein ist man immer schlauer Ich werde aber irgendwann eh noch ein Projekt komplett mit Funktionen umsetzen, da werde ich dann den Weg gehen.
                          apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                          Kommentar


                          • #14
                            Noch ein Tipp:
                            Sind historisch bedingt sehr viele Dateien mit Funktionen in einen Verzeichnis vorhanden, müssen ja alle Dateien bei den Varianten wie #12 gezeigt bearbeitet werden.
                            Durch eine triviale Erweiterung der load-Methode in einer Datei können dann alle weiteren Dateien des Verzeichnisses so
                            PHP-Code:
                            Lib1::load("Lib2"); 
                            geladen werden.

                            Kommentar


                            • #15
                              Ich finde super dass du das durchziehst und am Ball bleibst. Wird schon!

                              Meine Kritik:​​​​​​
                              • Auf der PHPStorm-Oberfläche ist immer so viel los und man verliert schnell den Blick bzw. der Blick wird nicht auf die relevanten Bereiche gelenkt. Ich empfehle hier speziell für Videos das drumherum auszublenden und nur den Code zu zeigen. Ggf. auch kontrastreichere Farben und die Schrift größer.
                              • Ich bin mir nicht sicher ob ein Anfänger den Erklärungen folgen kann. Gerade wenn man es mit Anfängern zu tun hat sollte man erstmal ganz pragmatisch zeigen was das Ziel ist (funktional), wie man zum Ziel kommt und dann in die Tiefe gehen (wie registriere ich eine Autoloading-Funktion?). Wobei der umgekehrte Weg vermutlich für einen Anfänger leichter zu bewältigen ist: Composer installieren, Autoloader konfigurieren, fertig.
                              • PSR-0 statt PSR-4 (wurde ja schon genannt)
                              Mach mal weiter so
                              [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

                              Kommentar

                              Lädt...
                              X