PHP Traits einfach erklärt | PHP Tutorials

preview_player
Показать описание
Neben Klassen gibt es in PHP noch Traits als Sprachkonstrukt, doch wie funktioniert es und was kann man damit machen? Das erkläre ich in diesem Video.

🔗 Links
***************************

🌐 Sonstiges
***************************
Weitere Themenvorschläge und/oder Kooperationen in die Kommentare.
#php #oop #trait

🤑 Affiliate
***************************

* Hierbei handelt es sich um ein Affiliate-Link, es entstehen keine weiteren Kosten beim Einkauf eines Produkts über diesen Link, du unterstützt aber meinen Kanal direkt.

🕛 Zeitstempel
***************************
Рекомендации по теме
Комментарии
Автор

Deine Tutorials sind mega, hab viel von dir über PHP gelernt !!!

LootzifferMedia
Автор

Ich selber arbeite schon lange nicht mehr im PHP-Umfeld (bin aber durch dein Video mit Golo Roden auf Dich und deinen Kanal gestossen), daher finde ich das ganz interessant zu sehen. Diese Traits kommen den Mixins aus anderen Sprachen, die ebenfalls keine Mehrfachvererbung kennen, ziemlich nahe. Selbst in C# 8 (mein Umfeld) gibt es neuerdings etwas ähnliches mit Default Interface Methods.

krccmsitp
Автор

Du erklärst das sehr gut und verständlich, danke Vitalij :) bei dir lernt man auch als vollnoob was :) danke und frohe Feiertage :))

mjk
Автор

Vielen dank für das Video lieber Vitalij

fxcanna
Автор

Hallo Vitalij, frohes Weihnachtsfest dir und deiner Familie. Perfekt erklärt, die traits werde ich fortan bestimmt häufiger nutzen

Darkray
Автор

Dir auch ein schönes Fest, das ist ja mal ein sehr guter Tipp, ähnlich Prototypes in JS, kommt für mich aber zu spät, habe
immer komplette Klassen geändert und beim Update alles wieder eingebaut :-(
Aber weiter so, es ist auch schön das du deine Videos auf Deutsch machst, was immer seltener wird.

rickyknollo
Автор

Hammer Videos. Ich habe nächsten Monat meine Prüfung für die Ausbildung und hab viel von dir gelernt. Privatunterricht wäre noch geil ☺️. Hoffe hörst nicht auf mit deinen Videos.

oemuerchatzi
Автор

Du hast ein didaktisches Talent. Deine Art zu erklären und das Thema strukturiert aufzubauen ist bemerkenswert.
Ein Thema zu beherrschen, ist eine Sache. Das auch verständlich erklären zu können, ist eine ganz andere Kunst.

pinkeHelga
Автор

Cool, danke, ich habe es besser verstanden.

Автор

Du hast des öfteren schon das Entity Component System als Framework erwähnt. Klinkt so als wenn du schon eine konkrete Vorstellung davon hast wie es aussehen sollte und welche Probleme es, im Gegensatz zu herkömmlichen Fameworks, lösen soll. Vielleicht wäre auch ein Video interessieren das eine herkömmliche Umsetzung in OOP z.B. mit einem Interface zeigt und dies dem ECS gegenüber stellt. Bin gespannt was du in diese Richtung noch machen wirst.

VeryBlackMan
Автор

Vielen Dank für deine Videos Vitalij! Hab die Beispiele aus diesem Tutorial nachgebaut, bei mir funktioniert das Beispiel mit dem "counter" nicht. Der Wert der "static $foo" bleibt nur in der jeweiligen Instanz erhalten. Klassenübergreifend funktioniert das nicht. Habe ich etwas falsch gemacht?

artuhr
Автор

Also trait = Funktionerweiterung einer Klasse.
Kann man Traits auch benutzen um Funktion rein zu tun, die man mehr als 3x verwendet, also komplett unterschiedliche?

imperiumkiller
Автор

Hallo Vitalij,
erst mal vielen Dank für Das gute Video.
Ich komme aus der Javawelt und verstehe nicht ganz den Unterschied zu abstrakte Klassen.
VG Volker

Excess-qnqh
Автор

Warum sollte man einen abstract in einen Trait bauen, wenn exakt dafür das Interface da ist?
Gibt es dafür ein Beispiel?

espiat
Автор

Vielleicht wäre noch zu erwähnen, dass man Abhängigkeiten in Traits wie z. B. eine DB-Verbindung, als Property innerhalb des Traits definieren sollte, die dann von der einbindenden Klasse auch gesetzt werden muss.

Die Möglichkeiten, die sich hier bieten, haben m. E. n. ein sehr großes Potential, Chaos zu produzieren. Aber ansonsten ist das schon ein tolles Konstrukt.

Das einzige, das jetzt in PHP in der Hinsicht fehlt, sind standalone Interfaces wie in Go oder Typescript.

Mal als Frage in Zusammenhang zum Video über PHP8: Findest Du nicht, dass dies ein weiteres "verwirrendes" Element in die Sprache kommt (bzw. kam) ;-) ?

karlkoslowski
Автор

Ich fange gerade an Traits zu verwenden. Hab für Traits nen neuen Ordner „Trait“ erstellt. Knallt direkt, weil „Trait“ nicht Bestandteil von nem Namespace sein darf. Narf. Muss man auch erstmal drauf kommen. Kompliziert wird es, wenn man sich auf $this bezieht. Sowas endet sehr schnell in Gebasteltes. Alles wieder entfernt. Meine Traits arbeiten nun nur noch additiv und erwarten Nichts in der zu erweiternden Klasse. Seitdem fängt das Arbeiten mit Traits an Spaß zumachen.

typo-lexikon
Автор

Wünsche ein frohes und hoffentlich gesundes Weihnachtsfest!

Num
Автор

@Vitalij Mik --> Es passt nicht ganz zu diesem Video, jedoch schießt mir folgende Frage gerade ins Hirn: 😊 Was hältst du (grundsätzlich) vom Framework Contao? --> Meinungen von anderen sind natürlich auch herzlich willkommen. 😉😊

ahadaha
Автор

Ich verstehe nicht, wo da der Sinn darin bestehen soll. Wieso schreibt man die Methoden/Eigenschaften nicht gleich in die Klasse???

blueeyesguy
Автор

Deine aufgezählten Anwendungsfälle sind falsch und verwirren dadurch den Zuschauen. Der Vergleich mit der Gameengine - naja... Es handelt sich um unabhängige, wiederverwendbare Bausteine . In anderen Sprachen heißen sie z.B. auch Mixins. Der Sinn ist, unnötige Vererbungsabhängigkeiten zu vermeiden und Verhalten nach Möglichkeit zu kombinieren.

ricohertha