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

  • BlackScorp
    hat ein Thema erstellt PHP Video | Framework für Anfänger.

    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


  • BlackScorp
    antwortet
    Zitat von sboesch Beitrag anzeigen

    Habe zwar nichts zum Video selbst zu sagen, allerdings funktioniert dein Channel-Link in der Signatur nicht
    https://www.youtube.com/witalimik
    ah stimmt, hatte ja die URL geändert.. danke

    Einen Kommentar schreiben:


  • sboesch
    antwortet
    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

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    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

    Einen Kommentar schreiben:


  • Zeichen32
    antwortet
    Okay, war auch nur ein Hinweis das es auch ohne Fake Autoload geht.

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    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.

    Einen Kommentar schreiben:


  • Zeichen32
    antwortet
    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.

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    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

    Einen Kommentar schreiben:


  • Zeichen32
    antwortet
    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"]
    }

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    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

    Einen Kommentar schreiben:


  • JaMa
    antwortet
    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.

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    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

    Einen Kommentar schreiben:


  • JaMa
    antwortet
    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.

    Einen Kommentar schreiben:


  • tomBuilder
    antwortet
    Ich muss gestehen, ich habe kein php 7,
    kann also nicht testen.

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X