Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Video | Framework für Anfänger

Einklappen

Neue Werbung 2019

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

  • PHP Video | Framework für Anfänger



    Guten Morgen,

    im heutigen Video stelle ich mein kleines Framework vor welches nur mit Funktionen umgesetzt ist. Das Ziel des Frameworks ist es Anfängern zu helfen einige Begriffe kennen zu lernen um später dann auf ein richtiges Framework umsteigen zu können. Also quasi ein "Proxy" Framework

    Viel Spaß mit dem Video

    https://youtu.be/xDjQ8qHLO7A

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


  • #2
    Moin Blackscorp,

    ich muss ehrlich zugeben, ich hab nicht ganz verstanden, wie man das installieren soll, geschweige denn wie es functioniert.
    eine INSTALL.md oder eine etwas ausführliche REAMDE.md hätte mir da möglicherweise geholfen.

    Kommentar


    • #3
      Zitat von tomBuilder Beitrag anzeigen
      Moin Blackscorp,

      ich muss ehrlich zugeben, ich hab nicht ganz verstanden, wie man das installieren soll, geschweige denn wie es functioniert.
      eine INSTALL.md oder eine etwas ausführliche REAMDE.md hätte mir da möglicherweise geholfen.
      Werde ich noch nachtragen, aber im Video habe ich gezeigt wie man das installiert bzw wie es functioniert
      apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

      Kommentar


      • #4
        Ich muss gestehen, ich habe kein php 7,
        kann also nicht testen.

        Kommentar


        • #5
          Bei der Route zum laden von Assets ist ein Path Traversal Angriff möglich. Der Router sollte das direkt filtern, ohne es überhaupt an die Actions weiter zu geben.

          PHP-Code:
          class Module{static function load(){}}; //this line is required for autoloading!! 
          So einen ähnlichen Einzeiler nutze ich in C++ um Reflection zu implementieren. Aber in PHP? Finde ich nicht schön gelöst.
          "Software is like Sex, it's best if it's free." - Linus Torvalds

          Kommentar


          • #6
            Zitat von JaMa Beitrag anzeigen
            Bei der Route zum laden von Assets ist ein Path Traversal Angriff möglich. Der Router sollte das direkt filtern, ohne es überhaupt an die Actions weiter zu geben.
            Ach stimmt,muss ich noch nachpflegen, ich glaube das wird schwierig den Filter im Router unterzubringen, werde es wohl in der Action dann anpassen. Hab noch gerade gesehen dass ich da sogar ein var_dump drin habe

            Zitat von JaMa Beitrag anzeigen
            PHP-Code:
            class Module{static function load(){}}; //this line is required for autoloading!! 
            So einen ähnlichen Einzeiler nutze ich in C++ um Reflection zu implementieren. Aber in PHP? Finde ich nicht schön gelöst.
            Ja ich wollte halt den Vorschlag von @jspit umsetzen
            https://www.php.de/forum/php-de-inte...05#post1558905

            Ich belasse es erstmal so und ändere das eventuell später. Mal gucken
            apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

            Kommentar


            • #7
              Zitat von BlackScorp Beitrag anzeigen
              Ach stimmt,muss ich noch nachpflegen, ich glaube das wird schwierig den Filter im Router unterzubringen, werde es wohl in der Action dann anpassen.
              Halte ich für keine gute Idee. Mir fällt kein Use-Case ein bei dem "../" o.ä. erlaubt sein sollten, deshalb kann der Router das eigentlich direkt filtern.
              Filtern kannst du recht einfach indem du den gegebenen Pfad mit dem Pfad von realpath vergleichst.


              Bzgl. den Modulen ist es m.E. nach nicht schön ein Framework aus Funktionen aufzubauen aber dann rein für das Autoloading eine Modulklasse mit einzuführen. Das ist einfach nur unnötiger Boilerplate, den gerade Anfänger gerne mal vergessen und sich dann lange wundern warum die Action nicht funktioniert.
              "Software is like Sex, it's best if it's free." - Linus Torvalds

              Kommentar


              • #8
                Zitat von JaMa Beitrag anzeigen

                Halte ich für keine gute Idee. Mir fällt kein Use-Case ein bei dem "../" o.ä. erlaubt sein sollten, deshalb kann der Router das eigentlich direkt filtern.
                Filtern kannst du recht einfach indem du den gegebenen Pfad mit dem Pfad von realpath vergleichst.
                Ach ja, stimmt, das wäre ja ganz easy solche requests zu ignorieren.

                Zitat von JaMa Beitrag anzeigen
                Bzgl. den Modulen ist es m.E. nach nicht schön ein Framework aus Funktionen aufzubauen aber dann rein für das Autoloading eine Modulklasse mit einzuführen. Das ist einfach nur unnötiger Boilerplate, den gerade Anfänger gerne mal vergessen und sich dann lange wundern warum die Action nicht funktioniert.
                Joa ich will ja nach und nach alle Themen durchgehen, ich setze jetzt ein mini Projekt nur mit Funktionen um, danach werde ich eins mit einem Framework umsetzen und auf diese Videos verweisen. Qasi "So haben wir das davor gemacht, aber besser wäre es wenn du so machst" danach gehe dann irgendwann auf TDD ein und werde noch alle Design pattern usw durchgehen.. ich versuche da ein System aufzubauen wo die Videos wie bei Wikipedia untereinander quer verlinkt sind. Und wegen dem Autoloading da bin ich auf den Ideenvorschlag eingegangen
                apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                Kommentar


                • #9
                  Zitat von JaMa Beitrag anzeigen
                  Bei der Route zum laden von Assets ist ein Path Traversal Angriff möglich. Der Router sollte das direkt filtern, ohne es überhaupt an die Actions weiter zu geben.

                  PHP-Code:
                  class Module{static function load(){}}; //this line is required for autoloading!! 
                  So einen ähnlichen Einzeiler nutze ich in C++ um Reflection zu implementieren. Aber in PHP? Finde ich nicht schön gelöst.
                  In Composer kann dies auch so gelöst werden. Dort dann einfach die Module Datei angeben wo die anderen requires drin stehen.
                  Code:
                  "autoload": {
                      "files": ["src/helpers.php"]
                  }

                  Kommentar


                  • #10
                    Zitat von Zeichen32 Beitrag anzeigen

                    In Composer kann dies auch so gelöst werden. Dort dann einfach die Module Datei angeben wo die anderen requires drin stehen.
                    Code:
                    "autoload": {
                    "files": ["src/helpers.php"]
                    }
                    Ja aber wenn ich dann steuern will welche Module aktiviert werden sollen bzw welche nicht, muss ich das Via composer.json und composer install/update machen? ist auch nicht schön
                    apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                    Kommentar


                    • #11
                      So lange du composer dump-autoload nicht ausgeführt hast, solltest du eigentlich nur die Datei aus dem Array nehmen müssen, damit es on-the-fly funktioniert.

                      Kommentar


                      • #12
                        Zitat von Zeichen32 Beitrag anzeigen
                        So lange du composer dump-autoload nicht ausgeführt hast, solltest du eigentlich nur die Datei aus dem Array nehmen müssen, damit es on-the-fly funktioniert.
                        Achso du meintest einfach eine Datei includen die dann wiederum alle Module einbdet, ich habe dich erst so verstanden dass du vorschlägst für jedes Module die php Datei einbinden also

                        Code:
                         
                         "autoload": { "files": ["source/ModuleA/Module.php","source/ModuleB/Module.php","source/ModuleC/Module.php"] }
                        ne, ich mache das eher so wie bei Larvel

                        https://github.com/laravel/laravel/b....php#L137-L178 gut die Injzieren da, ich mache ein fake autoload um Dateien zu includen. Ich weiß ist anders es geht aber darum dass Module über eine Datei aus dem Konfigurationsverzeichniss eingebunden werden.
                        apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                        Kommentar


                        • #13
                          Okay, war auch nur ein Hinweis das es auch ohne Fake Autoload geht.

                          Kommentar


                          • #14
                            Zitat von Zeichen32 Beitrag anzeigen
                            Okay, war auch nur ein Hinweis das es auch ohne Fake Autoload geht.
                            danke, hatte ich auch früher drin, aber fand den Vorschlag von hier nicht schlecht https://www.php.de/forum/php-de-inte...-0-autoloading desswegen habe ich es eingebaut
                            apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                            Kommentar


                            • #15
                              Zitat von BlackScorp Beitrag anzeigen

                              danke, hatte ich auch früher drin, aber fand den Vorschlag von hier nicht schlecht https://www.php.de/forum/php-de-inte...-0-autoloading desswegen habe ich es eingebaut
                              Habe zwar nichts zum Video selbst zu sagen, allerdings funktioniert dein Channel-Link in der Signatur nicht
                              https://www.youtube.com/witalimik

                              Kommentar

                              Lädt...
                              X