PHP Magische Methoden komplett mit Beispielen

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ก.ย. 2024

ความคิดเห็น • 21

  • @GFirehold
    @GFirehold 7 หลายเดือนก่อน

    Hey Vitalij, ich finde deine Videos sehr hilfreich und informativ. Vielen Dank dafür! Nur eine kleine Sache würde ich als Verbesserungsvorschlag anbringen, für Zuschauer, die gerade PHP lernen, wäre es hilfreich, wenn du zur Beschreibung neuer funktionen, methoden etc. kleine Real-Beispiele geben könntest, wo eine solche Funktionalität zum Einsatz kommen könnte oder was der Vorteil dieser Herangehensweise ist. In diesem Video zB habe ich noch nicht so ganz nachvollziehen können, warum man die Instanz zB wie eine Funktion schreiben sollte um dann invoke auszuführen. Wenn ich von der Klasse einen bestimmten Rückwert haben möchte, kann ich diesen doch einfach als methode oder eigenschaft anlegen um diesen auszugeben und müsste nicht extra die Schreibweise verändern. Ich bin mir sicher, dass es dafür eine perfekte Einsatzsituation gibt, nur ohne ein Beispiel, wo soetwas zum Einsatz kommen könnte, fällt es ohne Hintergrundwissen als "Lernender" schwieriger, den Sinn zu verstehen.

  • @pinkeHelga
    @pinkeHelga ปีที่แล้ว +2

    4:45 Das Problem besteht bei den bisherigen PHP-Versionen einschließlich 8.1 auch ohne magischen Setter. Soll ja zum Glück mit der nächsten Version endlich mal restriktiver werden. Ganz im Gegenteil ist es bislang sogar der Workaround, einen Magic Setter zu verwenden, um das Anlegen neuer Eigenschaften zu verhindern. Der Setter prüft dann mit etwas Overhead, ob die angesprochene Eigenschaft in einem privaten Assoc oder Object schon definiert ist.

    • @pinkeHelga
      @pinkeHelga ปีที่แล้ว

      Bin mal gespannt, wie das in PHP dann umgesetzt wird. Die Stärke der Skriptsprachen ist ja eigentlich gerade die dynamische Erweiterbarkeit der Objekte während der gesamten Laufzeit. Das andere Extrem, daß es einem völlig verwehrt bleibt, möchte ich auch wieder nicht. Ein Feature wie defineProperties in JavaScript möchte ich schon haben. Ansonsten könnte es passieren, daß ich gänzlich auf Node/Express umsteige.

    • @pinkeHelga
      @pinkeHelga ปีที่แล้ว

      Ich muß als Entwickler schon die volle Macht behalten können. Solche Restriktionen sollen wirklich nur gegen versehentliche Bugs absichern, nicht aber bevormunden.

    • @VitalijMik
      @VitalijMik  ปีที่แล้ว

      Es gibt doch den Spruch. "Mit viel Macht kommt auch viel Verantwortung" mit Erfahrung passiert das ja immer weniger dass da ausversehen neue Properties dazu kommen. Allerdings besteht die Welt nicht nur aus erfahrenen Entwickler ;)
      In PHP 8.2 kriegst du eine Fehlermeldung, es seidenn du hast magische getter/setter oder du fügst ein neues Attribut hinzu

    • @pinkeHelga
      @pinkeHelga ปีที่แล้ว

      @@VitalijMik Es kann aber nie die Lösung sein, erfahrene Entwickler einzuschränken, nur weil es auch Einsteiger gibt. Autos werden ja auch nicht so gebaut, daß niemand mehr eine Werkstatt braucht. Ansonsten muß sich PHP den Ruf wieder gefallen lassen, eine Idiotensichere Sprache für Anfänger zu sein, mit der die professionelle Welt nicht anfangen kann. So war es ja mal gestartet; es sollte jedem DAU ermöglichen, dynamische Seiten zu kreieren.

    • @VitalijMik
      @VitalijMik  ปีที่แล้ว

      @@pinkeHelga es ist ja keine einschränkung. eher expliziter code. willst du dynamische properties dann erstelle einen magischen setter.
      es ist weniger "magisch" und das ist doch eigentlich was gutes

  • @mrx89vienna
    @mrx89vienna ปีที่แล้ว +1

    Super Video! Ich muss gestehen ich nutze bis auf __construct() eigentlich nie magic methodes. Ich leg immer großen Wert drauf dass mein Code auch für Beginner noch gut Nachvollziehbar bleibt... im zweifelsfalle isses klarer wenns einfach eine Methode gibt die die gewüschte Aufgabe erledigt.

    • @VitalijMik
      @VitalijMik  ปีที่แล้ว +1

      Dankeschön, bei mir ist es auch fast so. Invoke benutze ich noch oft, denn ich habe viele kleine Services mit einer einzigen Public Methode, da nutze ich lieber einfach nur invoke und ab und zu gibt es noch ein descructor und toString

    • @pinkeHelga
      @pinkeHelga ปีที่แล้ว

      Ich finde magische Methoden zwar sehr angenehm. Aber ich bin extrem geizig, was die Laufzeitlast angeht, und da schneiden magic methods in PHP leider nicht ganz so gut ab. Habs in PHP8 aber noch nie durch den Profiler gejagt. Könnte sich verbessert haben.

  • @Dr.Ecksack
    @Dr.Ecksack ปีที่แล้ว +1

    👍👌

  • @lagracededieus.9663
    @lagracededieus.9663 ปีที่แล้ว

    Ich benötige Hilfe bei Responsives Design mit CSS weil es sich anders nicht anpassen lässt,
    Hilfe bei PHP um 2-3 Dachen nur kurz umzuändern sind kleine Sections die Kopiert und umgenannt werden müssen & dann Hilfe bei WP All Import wäre wirklich unendlich dankbar wenn wir jemanden finden

  • @igorbonicib
    @igorbonicib ปีที่แล้ว

    TOLLE VIDEOS ICH WÜRDE MICH FREUEN ÜBER EIN VIDEO MIT EINER CRUD UND LOG IN SYSTEM FROM SCRATCH DAS WÜRD MIR SEHR WEITER HELFEN LG

    • @igorbonicib
      @igorbonicib ปีที่แล้ว

      ODER CRUD MIT LOGIN UND ZB EIN HOTEL BUCHUNGS SYSTEM

    • @VitalijMik
      @VitalijMik  ปีที่แล้ว +2

      login script habe ich schon auf meinem kanal.
      wegen Crud da müsstest du mal mein Router video schauen ;)

    • @Meinungsmacher
      @Meinungsmacher ปีที่แล้ว +1

      sowas schreibt man nicht von scratch… dafür gibts php frameworks.

    • @VitalijMik
      @VitalijMik  ปีที่แล้ว +1

      @@Meinungsmacher stimmt schon, der Fragesteller ist aber noch am Lernen der Grundlagen in einer Code Academy, er ist noch nicht soweit ;)

    • @VitalijMik
      @VitalijMik  ปีที่แล้ว +1

      Ich hasse auch Sport aber ich weiß, dass ohne Sport mir nur schlecht gehen wird auf Dauer;)

  • @lagracededieus.9663
    @lagracededieus.9663 ปีที่แล้ว

    Ich benötige Hilfe bei Responsives Design mit CSS weil es sich anders nicht anpassen lässt,
    Hilfe bei PHP um 2-3 Dachen nur kurz umzuändern sind kleine Sections die Kopiert und umgenannt werden müssen & dann Hilfe bei WP All Import wäre wirklich unendlich dankbar wenn wir jemanden finden