Transkripte
1. Was ist Objektiv orientierte Programmierung: Hallo, John Morse. Hier. John Morse online dot com. Diese Lektion. Wir werden Ihnen eine kleine Einführung in die objektorientierte Programmierung geben. Sprechen Sie darüber, was objektorientierte Programmierung ist, warum Sie es verwenden möchten und wirklich, hoffentlich nur irgendwie eine Basis von Konzepten und Wissen und Verständnis geben, auf denen wir dann aufbauen
können, wenn wir dann in den Code eintreten. Das heißt, hier ist genau das, worüber wir reden werden. Wir werden,
ah, ah, definieren objektorientierte Programmierung. Wir werden über einige der reservierten Schlüsselwörter Klasse Eigenschaftsmethode
sprechen und dann auch über den Unterschied zwischen Klassen und Objekten sprechen. Ich werde Ihnen eine Analogie geben. Er ist hoffentlich, hoffentlich ein bisschen informativer als die, mit denen ich mich beschäftigt habe, als ich das
ganze Zeug lernte . Hoffentlich helfen Sie uns, es ein wenig klarer zu machen, und dann werden wir darüber sprechen, warum Sie objektorientierte Programmierung verwenden möchten und warum es eine Art so große Sache geworden ist und in den meisten Situationen allgemein empfohlen wird. In Ordnung, also das ist eine D-Agenda. Dann tauchen wir in das ein. Also lasst uns über die Definition reden, also werde ich das irgendwie durchgehen und darauf hinweisen, was ich für wichtig halte. So objektorientierte Programmierung ist ein Programmiersprachenmodell. Jetzt möchte ich mich auf dieses Wortmodell konzentrieren. Sie könnten auch das Wort, das ich denke,
Stil oder Ansatz oder Paradigma verwenden , was auch immer Wort für Sie funktioniert. Aber die Sache, über das Objekt während der Programmierung zu verstehen ist, ist es nicht so, dass es keine andere Technologie oder eine andere Sprache oder so etwas ist. Es ist nur ein anderer Ansatz oder Stil oder Modell der Art, wie Sie über die Programmierung gehen. Und es ist organisiert, wie die Definition hier um Objekte statt Aktionen und um Daten anstatt
Logik so gut sagt , werden
wir hier einfach weitermachen. Historisch gesehen wurde
ein Programm als logische Prozedur betrachtet, die Eingaben, Daten, Prozesse, verarbeitet und Ausgaben erzeugt. Ein gutes Beispiel dafür ist, wenn Sie
sagen wir,
eine nur normale Art von PHP-Form nehmen würden sagen wir, , die wirklich
in vielen Fällen der Baustein jeder Anwendung ist, wenn Sie wirklich darüber nachdenken. Aber nehmen Sie einfach eine regelmäßige Art von HTML-Formular, das Sie über PHP einreichen und in einer meiner Fortsetzungs-Datenbank
speichern würden . Im Allgemeinen ist
die Art und Weise, wie die Leute darüber nachdenken würden, dass Sie mit der Art der Benutzeroberfläche
beginnen würden ,
was die Form ist, die Sie die Daten nehmen würden, die dort sind und Ihre eigentliche Skriptsprache Ihrer Programmiersprache. PHP würde darüber nachdenken, was ich tun muss, um es zu verarbeiten. Sie würde es als eher eine Handlung und die Logik betrachten, die benötigt wird, um diese Aktion zu erfüllen. Es ist also sehr eigenständig in einem Sinne enthalten, dass es sich nur
um diese Form handelt, was getan werden muss , um sie zu verarbeiten und letztendlich in der Datenbank zu speichern. Und dann, natürlich, wenn Sie diese Daten abrufen wollen, dann haben Sie eine ganze Reihe von Handlungen, eine
weitere Aktion und die Logik, die notwendig ist, um diese Aktion auszuführen. prozedurale Code konzentriert sich im Allgemeinen auf diese Idee, Aktionen, die dieses Formular senden , diese Daten hier
speichern , diese Daten
abrufen , sie hier
anzeigen usw., und so waren die Dinge für eine lange Zeit getan. Das Problem dabei ist, dass, wenn Sie anfangen, fortgeschrittenere Anwendungen zu erstellen, wenn Sie sich nur auf Aktionen konzentrieren und Sie sich nicht wirklich mit dem Rest
der Anwendung beschäftigen . Wenn Sie einen anderen Teil davon erstellen, beginnen
Sie, eine Menge Code erneut zu verwenden. Sie fangen an, Dinge zu haben, die miteinander kollidieren können, und Sie enden mit dieser wirklich großen Art von potenziell desorganisiertem Ah, nur eine Art Code-Bibliothek, die nicht notwendigerweise jede Art von Organisation hat. Und wenn Sie anfangen, es zu organisieren, werden Sie sich in einer Weise organisieren, die folgt, zusammen mit Cooper-Prinzipien oder objektorientierten Prinzipien. Und so wirklich objektorientierte Programmierung nimmt diese Idee von Hey, wie könnte ich das ein bisschen besser organisieren und wirklich nur irgendwie extrapolieren und PHP unterstützt es jetzt mit einigen der Funktionen, die mit es und so weiter Zehe, wo Sie das tun können? Während die Definition weitergeht, wurde
die Programmierherausforderung darin gesehen, wie man die Logik schreibt, nicht wie man die Daten definiert. Objektorientierte Programmierung nimmt die Ansicht, dass uns wirklich wichtig ist, was uns wirklich wichtig ist, von den Objekten, die wir manipulieren wollen, anstatt der Logik, die erforderlich ist, um sie zu manipulieren. Und das ist ein wirklich wichtiger Punkt, denn wenn Sie über eine Anwendung nachdenken, fangen
Sie an, sie zu zerlegen. Letztendlich kümmern
Sie sich um die Objekte. Wenn Sie
zum Beispiel mit dem CIA,
CMSarbeiten,kümmern
Sie sich nicht unbedingt genau um die Logik, die für einen Benutzer notwendig ist, um ein
Postrecht zu erstellen,
aber Sie müssen zum Beispiel mit dem CIA, Wenn Sie
zum Beispiel mit dem CIA,
CMSarbeiten, CMS kümmern
Sie sich nicht unbedingt genau um die Logik, die für einen Benutzer notwendig ist, um ein
Postrecht zu erstellen , tun, ist etwas trivial für die Tatsache, dass das, was für das Programm wichtig ist, dass der Benutzer ein Objekt erstellen kann. Das ist im Grunde eine Methode oder eine Aktion. Ein weiteres Objekt der Post. Okay, also haben Sie zwei Objekte, den Benutzer in der Post und Sie haben eine Aktion, die erstellen oder bearbeiten oder löschen oder
kategorisieren etcetera ist . Und wenn Sie anfangen, es auf diese Weise zu betrachten, was Sie erkennen, ist, dass eine Anwendung wirklich nur eine Sammlung von Objekten und Aktionen ist , deren Benutzer Post-Benutzer erstellen, Post-Benutzer
löschen, Kategorisieren von ,
Erstellen von Kategorien Beitragsbenutzern,
Erstellen von Kategorien,
Benutzer,die Tags erstellen , , usw. Wenn Sie also anfangen, auf diese Weise darüber nachzudenken, denken
Sie tatsächlich darüber nach, wie die Anwendung selbst funktioniert und letztendlich
die Art und Weise, wie sich der Endbenutzer darauf beziehen wird? Dann ist es dem Benutzer egal, wie der Beitrag im Back-End erstellt wird. Alles, was ihnen wichtig ist, ist, dass die Post erstellt wird. Und so erlaubt es uns, es in einer Weise zu schreiben, die mehr macht, ist mehr im Einklang mit, wie das Programm tatsächlich funktioniert und als Ergebnis, auch viel mehr organisiert, nicht wiederholen, eine Reihe von Code und alle Arten von verschiedenen Vorteile, in die wir bekommen werden, oder? Hoffentlich gibt Ihnen das ein wenig klareres Verständnis von Ihnen wissen, welche objektorientierte Programmierung in einem der Gründe ist ,
warum wir es
ursprünglich verwenden möchten. Lassen Sie uns als nächstes über einige objektorientierte Programmiergrundlagen sprechen, und ich beschränke dies in erster Linie auf PHP, nur weil das dieser Kurs ist. Also, äh, das erste ist, was wir die Klasse nennen würden. Jetzt denken viele Leute, dass die Klassen, tatsächlich die Sache, die Sie erstellen und als der Coder, der wirklich ist, dass der Teil , den Sie tatsächlich schreiben. Aber es ist nicht die eigentliche Sache selbst wird nicht darüber reden. Was das hier in nur einer Sekunde bedeutet. Aber die Art und Weise, über die Klassen nachzudenken, ist eigentlich der Entwurf für das Erstellen des Projekts. Wenn Sie also eine Klasse schreiben, erstellen Sie kein Objekt. Sie erstellen den Brute-Blueprint für ein Objekt, das zu einem späteren Zeitpunkt erstellt werden soll. Okay, also denk daran, die Klasse ist wirklich die Blaupause. Und dann werden
Sie in einer Klasse die beiden wichtigsten Dinge haben. Du wirst unsere Eigenschaften und Methoden haben. Also Eigenschaften sind Variable, die zu einem Objekt gehört. Was das wirklich bedeutet, ist, dass es etwas ist, das das Objekt beschreibt. Also, zum Beispiel, wenn Sie einen Beitrag nehmen, wäre
es der Titel des Beitrags. Es sind die Daten über das jeweilige Projekt dort. Das bestimmte Objekt, eine Methode ist Aktionen, die entweder das Objekt ausführen kann oder die für das Objekt übernommen werden können. So zum Beispiel einen Benutzer, haben
Sie
zum Beispiel einen Benutzer,während ein Benutzer einen Beitrag erstellen kann. Es ist also der Benutzer, der eine Aktion beim Erstellen eines Beitrags ausführt. Aber es ist auch der Beitrag als Objekt selbst erstellt wird, also ist es ein Objekt, das eine Aktion ausführt. Es ist auch ein weiteres Optionsobjekt, das eine Aktion darauf ausgeführt hat. Okay, aber die Sache zu beachten ist, dass Eigenschaften eher wie nur Eigenschaften sind. Ihre Daten, die die Objektmethoden beschreiben, sind handlungsbezogene Dinge, die es richtig tun können oder
getan werden können . Das Objekt also das ist
also daseigentliche Ding. Wir kommen in einer Sekunde darauf zurück und dann in Stan Shih ation oder zwei in Stan, die sie gegessen hat, ist die Aktion, ein Objekt aus einer Klasse zu schaffen. Also wieder, die Klasse ist die Blaupause. Das Objekt ist die eigentliche Sache, die Sie aus der Klasse erstellen. Okay, jetzt lassen Sie uns in ein paar Analogien springen, weil ich weiß, dass, wenn Sie anfangs hier sind, wahrscheinlich ein bisschen verwirrend sein
kann. Aber lasst uns weitergehen und uns eine Analogie ansehen. Die erste Analogie ist also die Hausanalogie. Und so ist der Weg, darüber nachzudenken, das Haus selbst. Wenn die Häuser alle gebaut Rial Sache, die existiert, die Bau
mit Holz und Schindeln gebaut wurde und all das zitiert, die Aktion für Sie nur in der realen Welt zu sein, vergessen Beschichtung für eine Sekunde. Wenn Sie nur in der realen Welt sind, schauen Sie sich das Haus an. Das Haus ist das Objekt selbst. Okay,
also, wenn wir ein Objekt während der Programmierung machen Was? Wir erschaffen unsere Rial-Sachen. Das eigentliche Objekt. Okay, Okay, die Blaupausen für das Haus sind die Klasse. Wenn Sie also die Klasse schreiben, schreiben
Sie wirklich nur Blueprints. Okay, jetzt, in diesen Blaupausen, würdest
du dich und hier kann es ein wenig knifflig werden, aber es ist abstrahiert Schicht weg. Also würden Sie über Dinge in den Blaupausen sprechen, wie Farbe, vielleicht die Anzahl der Fenster,
all diese Arten von Dingen formen . Alle Eigenschaften, Lufteigenschaften des Hauses, die es machen, dass Haus einzigartig von anderen Häusern da draußen . Aber man würde nicht unbedingt sagen, welche Farbe oder welche Form oder welche Anzahl von Fenstern, zumindest wenn wir darüber nachdenken. In Bezug auf die objektorientierte Programmierung,
alles, was Sie sagen, ist, dass es eine Farbe haben kann. Es könnte eine beliebige Farbe haben, aber es kann eine Farbe oder eine Form oder eine bestimmte Anzahl von Fenstern wieder haben. Sie sind nicht taub, unbedingt zu definieren, wie diese spezifischen Details tatsächlich sind. Die Methoden dann die Aktionen, sind
dann die Aktionen,die entweder das Haus ergreifen kann oder auf das Haus genommen werden kann. Also das Haus bauen, das Haus
heizen, das Haus
verkaufen, einen Vorschlaghammer zur Seite des Hauses
nehmen, was auch immer jede Art von Aktion im Zusammenhang mit diesem bestimmten Objekt oder den Methoden, und dann die eigentliche Konstruktion ist die Instanz, die sie entwirft. Also in Stan Shih ating ah, Klasse und Schaffung eines Objekts ist die eigentliche Konstruktion des Objekts aus den Blaupausen. Sie bauen also das Haus aus den Blaupausen, die Sie in der Klasse und in der
Klasse erstellt haben . Sie haben verschiedene Eigenschaften und Methoden, die dieses Haus haben kann. Und es ist in Stan Shih ation, wo man es sagen würde, oder man würde angeben, was die Farbe ist, wie die Form ist, wie die Anzahl der Fenster ist. Nein, es ist ein wenig gefickt,
weil Sie nicht immer all das Zeug deklarieren und eine Konstruktormethode sagen müssen. Wenn Sie die Klasse erstellen, können
Sie diese Eigenschaften vorher explizit definieren. Sie können das tun, aber so verstehen. Sie können diejenigen haben, die explizit vorher definiert sind, oder Sie können diejenigen, die Sie definieren, wenn Sie und Stan sie es gegessen haben, aber Farben ein wirklich gutes Beispiel,
richtig, wenn Sie eine Reihe von Blaupausen hatten, um ein Haus zu erstellen, Diese Blaupausen würden dir nicht unbedingt sagen, welche Farbe die Sichtung auf dem Haus haben wird. Sie würden nur sagen, dass es zitiert werden muss. Und du würdest zum Hausbesitzer gehen. Du würdest sagen, Hey, welche Farbe willst du zitieren oder welche Art von Arbeitsplatten, die du nicht gewähren willst? Du willst Gerichte oder willst etwas anderes, ? Der Hausbesitzer wäre in der Lage, all das Zeug auszusuchen, und es würde Ihren Bau nicht wirklich beeinträchtigen. Also müssen Sie diese Dinge nicht spezifisch definieren, äh, in den Blaupausen. Aber was Sie definieren, ist, dass es zitiert, und dass es eine Art von Tischplatten geben wird. Also, wenn Sie es tatsächlich konstruieren,
das ist, wenn Sie feststellen würden, dass diese Dinge die gleiche Idee hier sind, gibt es bestimmte Eigenschaften, die Sie nicht definieren müssen, Sie wissen, die Farbe des Hauses, die Sie in die eigentliche Klasse. Du kannst das definieren, wenn du und Stan es gegessen hast. Okay, also
wieder, wieder, das Haus ist das Objekt. Die Blueprints sind die Klasse, die Sie in Position acht dieser Klasse, um das Objekt zu erstellen,
und
Natürlich ,
und
Natürlich wird dieses Objekt bestimmte Eigenschaften und Methoden mit ihm verbunden haben. In Ordnung, schauen wir uns noch einmal die Analogie des Autos an. Also wieder, wenn wir über ein Auto sprechen, das Auto selbst ist das Objekt ist die eigentliche wird eine Welt Sache wieder. Das Drei-D-Modell des Autos, das sich in einem Computer befinden könnte, von dem aus gebaut wird, wäre die Klasse gegen die Blaupause oder das Modell. Sie wissen, die Farbe des Autos nicht unbedingt die spezifische Farbe, aber dass es eine Farbe hat. Die Motorgröße, die Räder außer diesen sind alle Eigenschaften. Ihre Daten über die Auto-Methoden sind Dinge, die das Auto tun kann oder kann mit dem Auto gemacht werden. So starten Sie das Auto, fahren Sie das Auto, drehen Sie das Auto und die eigentliche Herstellung oder den Bau des Autos ist diean Haltung. Siehe ation. Okay, also wieder, ich will nur wirklich versuchen, den Unterschied zu machen, ist klar. Das Objekt ist die eigentliche Sache, die erstellt wurde. Die Klasse ist die Blueprints zum Erstellen, und die Art und Weise, wie Sie sie erstellen, erfolgt durch Instanzen. Eine Instanz dieses Objekts aus der Klasse aus dem Blueprint, das ist, was Instanz Asian ist und wieder mit der schönen Sache über Objekt. Dorian Programmierung ist, weil Sie nicht speziell sagen, welche Farbe etwas sein muss . Als Beispiel könnten
Sie ein blaues Auto oder ein rotes Auto oder ein grünes Auto erstellen, oder Sie könnten in einem Fall, wenn Sie Instanz, die Klasse
essen. Man könnte sagen, diese spezielle Instanz der Klassen, die von diesem Objekt sein werden, oder was auch immer blau sein wird. Hier, es wird grün sein. Hier wird
es gelesen werden, usw., usw., so dass Sie mehrere Instanzen derselben Klasse haben können, die unterschiedliche Eigenschaften
zugeordnet haben . Wenn Sie sichein CMS nochmals ansehen,sind alle einzelnen Beiträge, die Sie auf einem Blawg haben,
zum Beispielverschiedene Objekte,
diese Luft, ein CMS nochmals ansehen, Wenn Sie sichein CMS nochmals ansehen,sind alle einzelnen Beiträge, die Sie auf einem Blawg haben, zum Beispiel verschiedene Objekte, diese Luft, verschiedene Instanzen der Klasse. Die Klasse sagt Ihnen nicht, was der Titel des Beitrags oder was der Inhalt des Beitrags sein
muss . Es sagt Ihnen nur, dass es einen Titel gibt, dass es eine Beschreibung gibt. Es gibt Inhalt. Es gibt eine Tag-Kategorie usw., so dass jede Zeile in Ihrer Datenbank Ihres for post wirklich und unterschiedliche Instanz dieser
bestimmten Klasse ist . Oder es ist ein anderes Objekt, das Sie in Ihrer Datenbank gespeichert haben. Okay, also nochmal, ich kenne einige von euch, die allein Sinn macht. Einige von euch, die so aussehen würden, OK, weißt
du, ich bin immer noch ein bisschen verwirrt. Oder vielleicht bin ich jetzt verwirrter. Die Sache daran ist, dass das Zeug jetzt in deinem Gehirn ist. Wenn wir also in den eigentlichen Code kommen und anfangen, ihn
zu benutzen , werden wir hoffentlich anfangen, für Sie ein wenig mehr zu klicken. Und wenn nicht, kommen Sie zurück und schauen Sie sich das an und hüpfen Sie einfach etwas zwischen den beiden zurück, wenn Sie müssen. Ach, um es für dich wirklich zu klären, denn wirklich, wir versuchen nur, hier ein Fundament zu legen. Es ist nicht notwendigerweise notwendig, oder sogar zwangsläufig wahr, dass du alles hier komplett verstehen wirst. Sie müssen wirklich damit anfangen zu arbeiten, damit das passiert. Ordnung, also lassen Sie uns über einige der Gründe sprechen, warum Sie objektorientierte
Programmierung verwenden möchten . Wir werden wahrscheinlich die größte, wichtigste oder derjenige, von dem viel gesprochen wird, ist das, was man Kapselung nennt. Und was das bedeutet, ist Ihre Bündelung von Daten mit den Methoden, die auf diesen Daten arbeiten. Also schauen wir buchstäblich nur abgedeckt genau das, was das ist. Die Eigenschaften Luft, wirklich, die Daten und die Methoden sind die Methoden, die auf diesen Daten arbeiten. Was also passiert ist, ist, dass Sie diese beiden Dinge in einer einzigen Klasse zusammenstellen, und was Sie damit tun können, ist, einzelne Klassen zu erstellen, die sehr individuelle spezifische
Dinge tun , damit Sie
sagen,
einen Beitrag erstellen können sagen, -Klasse. Und diese Klasse verfügt über alle Daten, die für Sie notwendig sind, um ein Objekt zu erstellen und alle dafür notwendigen Daten in der Datenbank zu
speichern. Es wird alle diese Eigenschaften definiert, zusammen mit den Methoden, die Ihnen erlauben werden, mit diesem Beitrag in jeder
Weise zu interagieren Luft notwendig, um es zu erstellen,
fügen Sie es hinzu, um etcetera zu löschen. Dann wird das eine Klasse sein. Dann haben Sie vielleicht noch einen. Das ist eine Kategorie, die alle Daten und Methoden enthält. Dafür habe ich eine andere, die für alle Methoden und Daten getaggt ist. Dafür Sie vielleicht noch einen. Dieser Benutzer für alle Methoden und Daten dafür. Sie denken also über die Anwendung in Bezug auf die tatsächlichen Objekte und Dinge nach, die sich innerhalb der Anwendungsbeiträge, Kategorien ,
Tags usw. befinden, und Sie organisieren sie nach diesen Dinge und halten sie sehr gekapselt, so dass Ah, du nicht bist. Du mischst den Mantel nicht überall. Und das führt dazu, dass Zeitalter viel organisierter und einfacher zu arbeiten sind, so dass es einfacher ist, zu skalieren. Ah, irgendwie das trockene Prinzip, das hier unter dem inhärenten SA's Brunnen notiert wird. Aber es passiert auch hier, dass Sie nicht unbedingt eine Reihe von Code wiederverwenden und so weiter. Kapselung ist also die große Sache, die nur zu einem
saubereren, organisierteren,
effizienterenund
skalierbareren Typ führt saubereren, organisierteren, effizienteren . Anwendung. Vererbung ist eine andere, daher ist die Vererbung im Wesentlichen, es ist der Es ist ein Prozess, der es Objekten ermöglicht, die Eigenschaften von Objekten einer anderen
Klasse zu erwerben , so dass Sie im Wesentlichen auf Objekt und wenn Sie erweitern, können
Sie eine Klasse erweitern. Wenn Sie diese Klasse erweitern. Grundsätzlich
ist die neue Klasse, die Sie erstellen, inhärent alle Eigenschaften der Klasse, die sie erweitert, und kann Zugriff auf diese Methoden und so weiter haben. Und so hält es Sie davon ab, zu müssen, wenn Sie hinzufügen
möchten oder mit denen Sie arbeiten oder eine bestimmte Klasse verwenden möchten, aber Sie möchten Dinge hinzufügen, müssen
Sie sie nicht vollständig neu schreiben. Sie können es einfach erweitern und dann hinzufügen, was Sie hinzufügen möchten. Es verhindert, dass Sie wieder eine Reihe von Code neu schreiben müssen, wiederholen Sie sich
nicht und es verbessert die Benutzerfreundlichkeit und all diese Art von Sache. Vererbung ist also ein weiterer Grund, warum der letzte ist, was Polymorphismus genannt wird. So können verschiedene Instanzen unterschiedliche Formen annehmen. Das ist im Grunde, worüber wir bereits gesprochen haben, das ist eine Instanz,wissen
Sie, wissen
Sie, das Auto kann ein anderes komplettes Blau gelesen werden, ein anderes kann grün sein und nichts ändert sich an der Klasse. Du änderst die Klasse überhaupt nicht. Alles, was Sie tun, ist, die Informationen oder die Daten zu ändern, die
Sie an die Klasse übergeben , wenn Sie mit den Methoden arbeiten oder auf bestimmten Bedingungen usw. basieren, können
Sie das Objekt ändern, das Sie von der -Blueprint, ohne den Blueprint selbst ändern zu müssen. So schafft es wieder eine Level-Flexibilität für Ihre Anwendung. Es macht es auch wieder. Also wiederholen Sie Ihren Code nicht. So sind Sie wieder wiederverwendbar, skalierbarer, all diese Arten von Dingen. Und deshalb sehen Sie, dass objektorientierte Programmierung zu diesem wirklich heißen Thema wirklich sehr empfehlenswert wird und in den meisten Fällen etwas ist, das Sie verwenden möchten. Jetzt gibt es einige Fälle, und das ist wirklich wahrscheinlich Kontroverse, könnte
ich sagen, ist sehr umstritten. Aber ich würde sagen, es gibt einige Fälle, in denen objektorientiertes Programm nicht unbedingt der beste Weg ist, um die Dinge richtig zu gehen. Also das gute Beispiel, dass ich gerne seine WordPress-Themes jetzt Teile von WordPress-Themes verwenden sollte
unbedingt Klassen sein. Es gibt individuelle Dinge, die Sie in einem Thema tun möchten. Zum Beispiel könnte
Paging-Nation in einem guten Beispiel sein, wo es eine Reihe von Dingen gibt, die Sie tun müssen, um in acht richtig zu blättern, und all diese Dinge sind miteinander verwandt, so dass Sie all diese Dinge gruppieren können zusammen, und Sie können diese Klasse verwenden, um im Wesentlichen diesen Teil von Of der Dinge richtig zu behandeln. So würden Sie haben, würden Sie immer noch Klassen innerhalb Ihrer WordPress-Theme. Aber die eigentliche, wenn Sie das WordPress-Theme erstellt, erstellen
Sie eine Funktionsdatei, oder? Der Akt, der tatsächlich funktioniert Datei, wo die im Wesentlichen Art ist, wird Ihr Controller. Wenn Sie darüber nachdenken, in Bezug auf ah M V C Mall von können Sie Controller-Typ einrichten , dass Funktionen gedacht Art Ihr Controller ein wenig wird. Es ist umstritten, ob eine Klasse im eigentlichen Controller erstellt und dort verwendet wird. Ich denke, es ist umstritten, ob das Ihnen tatsächlich hilft oder einfach unnötigen
Overhead schafft . Und so wieder gibt es. Oder vielleicht bauen Sie,wissen
Sie, wissen
Sie, ein einfaches Sie buchstäblich oder bauen ein Formular auf Ihrer Website, ? Und es wird nicht werden Es ist nicht diese riesige Anwendung, die Sie bauen werden. Oder wenn es so wäre, dann würdest du es verstehen. Okay, jetzt sollte ich wahrscheinlich umschalten und ah beginnen,
mit ah, wobei ich den objektorientierten Ansatz und diese Art von Sache nehme. Aber es ist buchstäblich eine Form, die Sie gut verarbeiten werden, ist es wirklich notwendig, eine ganze Klasse für diese ganze Sache zu bauen? Du könntest sicherlich und wenn du wie ein Stickler für diese Art von Sache bist, dann mit allen Mitteln. Aber es ist nicht wirklich notwendig, notwendigerweise irgendeinen Vorteil, es so zu tun. Okay, es gibt
also Fälle, in denen objektorientierte Programmierung nicht notwendigerweise irgendeine Art von Vorteil ist und vielleicht sogar einige s notwendigen Overhead hinzufügt. Aber wenn Sie eine Anwendung erstellen, wenn Sie sich hinsetzen, werde
ich ein CMS bauen. Ich werde ein soziales Netzwerk aufbauen. Ich werde ah e Commerce eine beliebige Art von Anwendung bauen, wo Sie eine Reihe von
verschiedenen beweglichen Teilen haben werden . Du wirst eine Reihe von verschiedenen Objekten haben und die miteinander interagieren und so weiter. Objektorientierte Programm ist absolut der Weg zu gehen. Es wird dir das Leben viel einfacher machen. Ah, es wird die Dinge organisierter machen, skalierbarer, wiederverwendbarer, all diese Art von Sache. Sie sollten es also unbedingt in diesen speziellen Fällen verwenden. Also, Also, wie ich schon sagte, nein, das wird es irgendwie für diese Lektion tun. Aber wie ich schon sagte, es ist nicht wirklich notwendig, dass all das 100% Sinn ergibt. Es ist jetzt in deinem Kopf. Du hast es gehört. Und wenn wir in den Code kommen, dann sollten Sie beginnen, Seymour klare Beispiele für die Dinge, über die wir gesprochen haben, und hoffentlich beginnt es für Sie zusammen zu kommen. Also nochmal, ich werde es für diese Lektion tun. Danke fürs Zuschauen. Nächstes Mal reden wir mit.
2. Kursteil, Sachen, Objekt, Methode: Entweder. John Morse. Hier, John Morse online dot com. Diese Lektion. Wir werden die grundlegende Klassensyntax durchlaufen. Also werde ich Ihnen zeigen, wie Sie eine Klasse erstellen,
wie Sie eine Eigenschaft innerhalb der Klasse eine Methode erstellen. Hatte zwei Instanz Ian eine Instanz dieser Klasse und dann, wie man eine Methode von unseren neu
erstellten Objekten aufruft . Dies wird Ihnen also den vollen Umfang der Art der Konzepte, über die wir gesprochen haben, geben und Ihnen zeigen, wie Sie sie hier in PHP tatsächlich verwenden können. So können Sie Art von Anfang an bis Fuß auf dieser Art von Rahmen aufbauen. Das ist also ein Framework, auf dem wir den Rest der Klasse aufbauen werden, also ist das Erstellen einer Klasse wirklich ziemlich einfach. Sie brauchen nur das Klassenschlüsselwort. Das ist also Klasse. Und dann müssen Sie Ihre Klasse benennen. Also lasst uns so etwas wie meine Klasse machen. Jetzt können Sie Ihre Klasse alles benennen. Ähm, aber die Art von Standard, wie Sie es nennen, ist Kamelfall zu verwenden. Also Kapital M Kapital C. Das ist nicht erforderlich. Es wird nicht irgendeine Art von Luft oder so etwas werfen, das nur tendenziell die
Konvention unter PHP-Entwicklern ist , natürlich. Tu
immer, was du willst . Aber, äh, wenn Sie nach dem suchen, was die Art von Standard ist, ist es
das, was es ist. Also, sobald wir das Klassenschlüsselwort haben, dass wir den Namen unserer Klasse haben und alles, was wir brauchen, ist das Öffnen lockiger Klammer und dann eine Kleidung, natürlich, eine schließende lockige Klammer. Und das ist im Wesentlichen unsere Klasse. Alles andere, was wir außerhalb des Stands tun werden, essen und wird im Inneren von hier passieren. Wenn wir also über das Erstellen eines Blueprints sprechen, erstellen Sie hier Ihren Blueprint innen und außen, und es wird sein, was es sein wird, ist Sammlung von Eigenschaften und Methoden. Der Weg, dies vielleicht mit prozeduralem Code in Beziehung zu setzen, ist also im prozeduralen Code. Oft können Sie eine Konfliktdatei erstellen, und in dieser Konfliktdatei haben
Sie Constance und dann den Rest Ihres Codes, Ihre Funktion oder Sie können globale Variablen erstellen. Sie können Variablen im globalen
Namensraum erstellen
, was bedeutet, was bedeutet, außerhalb einer Funktionsbezeichnung,
und dann innerhalb von Funktionen, die Sie globalisieren könnten, verwenden Sie das globale Schlüsselwort und verwenden Sie dann diese Variablen, die außerhalb der Funktion innerhalb der Funktion erstellt wurden. Nun, das ist eine ähnliche Idee in dem Sinne, dass Eigenschaften Luft Art wie, Ah, es gibt eine Art Constance für Ihre Klasse. Sie erstellen eine Eigenschaft oben außerhalb Ihrer Funktionen, oder sie sind eher wie globale Variablen. Sie erstellen, Ah, Variable außerhalb Ihrer Funktionsaufrufe an der Spitze Ihrer Klasse, und dann können Sie diese Variablen innerhalb Ihrer Funktionen verwenden, ohne
sie zu globalisieren . In gewisser Weise ist
eine Klasse wirklich nur eine Art Namensraum. Es ist eine Art von etwas, das Sie alle Ihre Funktionen in Ihre Eigenschaften
einbinden können , und sie funktionieren wirklich nur innerhalb dieses bestimmten Namensraums, und Sie könnten es verwenden. Sie könnten denselben Variablennamen außerhalb der Klasse verwenden,
und die beiden würden nicht in Konflikt geraten. Jetzt gibt es einige Vorbehalte und Ausnahmen von diesem Zeug, und wir werden das durchmachen. Aber nur in einem allgemeinen Sinne, das ist eine Art, was das jetzt wieder ist, wir sprachen darüber, dass wir objektorientierte Programmierung tatsächlich in der Idee dahinter ist, und die Tatsache, dass Sie all Ihre Sachen in die Klasse schreiben und immer noch wirklich tun Objekt während einer Programmierung wird wieder. Wir tauchen noch ein, wenn wir weitermachen. Aber ich möchte Ihnen diese Basis geben, diese basierte Art von Konzepten und Syntax. Sobald wir also unsere Klasse erstellt haben, können wir
jetzt unsere Variablen und unsere Methoden erstellen. So ist es ziemlich einfach, eine Variable zu erstellen. Du tust es einfach. Du benutzst die Ach, benutze das. Identifizieren Sie sie hier. Jetzt reden wir in ein bisschen darüber. Diese waren öffentlich, privat, geschützt. Wir werden darüber sprechen die und wie sich das auf Umfang und Nutzung auswirkt und so weiter. Aber ah, Moment bleiben
wir einfach bei der Öffentlichkeit, und dann verwenden Sie einfach diese Syntax von r gleich, die ich mag. Es ist
in gewisser Weise wie das Erstellen einer Variablen, in gewisser Weise wie das Erstellen einer Variablen, also ist es ziemlich einfach und das ist eine Klasseneigenschaft. Also wieder, nichts zu verrückt darüber jetzt, um eine Methode wieder zu erstellen, verwenden
wir hier das öffentliche Schlüsselwort, und dann erstellen Sie Ihre Funktion. Und dann, natürlich, werden
Sie Ihren Funktionsnamen tun, so dass wir einfach meine Funktion machen und unsere öffnenden
geschweiften Klammern machen . Also wieder, das ist genau wie eine reguläre Funktionsbezeichnung, die Sie richtig machen würden. Wir fügen nur dieses Schlüsselwort public am Anfang davon hinzu. Und mach dir nicht wirklich Sorgen darüber, denn ich erkläre, was es bedeutet. Aber es ist nicht so kompliziert oder groß von einer Sache. Okay, es gibt nur einige Unterschiede in Bereichen, in denen Sie das eine oder andere verwenden könnten, aber es ist nicht alles, was zu komplex ist und schwer zu verstehen wäre. So groß der Name unserer Funktion. Und dann in diesem, wir etwas tun, also hier wird einfach Echo tun und das Schlüsselwort dieses verwenden und
dann werden wir,
uh, uh, Echo var. Okay, lass mich das erklären. Wann immer Sie sich in Ihrer Klasse so befinden, können
Sie dieses Schlüsselwort direkt hier verwenden. Oder Sie müssen diese Variable verwenden, dass, wenn Sie eine Klasse erstellen, dies im Grunde verfügbar wird und Sie es verwenden können, um entweder Eigenschaften innerhalb
Ihrer Klasse oder Funktionen aufzurufen , damit wir es tun können, würde es innerhalb von hier keinen Sinn ergeben, Aber wir könnten meine Funktion so tun, um unsere Funktion aufzurufen. Okay, die Art und Weise, wie Sie Eigenschaften und Methoden innerhalb einer Klasse referenzieren, verwendet
dies diese Variable und dann ah, diesen Zeiger und dann den Namen der Variablen oder der Eigenschaft oder der Funktion oder der Methode so und nur für den Fall ist nicht klar. Innerhalb einer Klasse Variablen oder kalte Eigenschaften und wurden
Variablen oder kalte Eigenschaften und
Funktionen Methoden genannt. Also, wenn ich die beiden austausche, vergib mir ein bisschen dazu. Aber das ist das Das ist die Grundidee. Also wieder können Sie auf diejenigen verweisen, die diese ah,
Variable hier verwenden . Und so ist das und und das ist, was wir hier tun, um zu referenzieren, sind Variable erscheinen jetzt. Die einzige Einschränkung ist, dass wir hier in ein wenig und ein paar Lektionen über Klasse Konstanz und so weiter und statische
Funktionen und so weiter sprechen werden. Dies funktioniert jedoch nur, wenn dies eine Instanz erhält, die als Instanz eines Objekts
sitzt. In den meisten Fällenspielt
das keine Rolle,
denn das wirst du sowieso tun. In den meisten Fällen das keine Rolle, Aber wenn Sie eine statische Funktion erstellen, können
Sie das Innern nicht verwenden, da kein Objekt Instanz sitzt, wenn Sie eine ah
statische Funktion wieder verwenden , werden wir in ein wenig mehr darauf hineinkommen. Aber das fängt einfach an. Du denkst jetzt ein bisschen darüber nach. Also wieder, wir sind kaputt. Also, was diese Funktion eigentlich tun sollte? Wenn wir diese Funktion aufrufen, sollte
sie sich widerspiegeln. Ich mag Coop. Das ist letztendlich, was das tun sollte. Also, jetzt, zwei Instanz essen eine neue Instanz davon. Was wir tun werden, ist, dass wir meinen Kurs machen werden, der meiner Klasse entspricht. Das ist also in der Haltung, eine Instanz unserer Klasse zu
essen. Erinnern Sie sich an
die Klassen, die Blaupause. Das ist die eigentliche Sache, die wir erschaffen. Das ist das Objekt. Also meine Klasse, diese Variable ist ein Objekt. Wenn das die Blaupause für das Haus ist, ist
das Haus. Also, jetzt haben wir unser Haus in unserer Variablen meine Klasse, und wir können aufrufen, schwächen, verweisen auf eine der Eigenschaften, jede der Methoden, und bauen, was in unserem Blueprint verfügbar ist. Unsere Klasse. Wir können das mit diesem neuen Objekt bauen. Okay, was wir jetzt tun können, ist, dass wir Echo machen können. Tun Sie das nicht mal. Wir können meine Klasse und meine Funktion machen und das einfach so nennen. Und wenn wir hier auf unsere Seite kommen, könnten
Sie sehen, dass ich Coop mag. Okay, das ist
also die ganze Idee hier. Und was dies wieder, Was diese erlaubt uns zu tun? Nur eine Klasse zu erstellen ist nicht ich meine, technisch gesehen ist es, aber es ist nicht wirklich im Geiste von notwendigerweise im Geist des Objekts während einer Programmierung. OK, aber was es tut, ist, dass es uns die Grundlage gibt, auf der wir jetzt beginnen können, objektorientierter Programmierung zu
beschäftigen. Und wir können individuelle ah erstellen, einzelne Klassen zu ah, handhaben individuelle Funktionalität. Und das ist wirklich der ganze Sinn. Ist das für jede Art von Sache, die Sie in Ihrer Anwendung tun möchten, das heißt, Sie wissen, mehr als nur vielleicht eine Funktion, möchten
Sie darüber nachdenken, es in eine Klasse zu setzen und diese Klasse zu haben alles erledigen. Also, zum Beispiel, wenn Sie sich das CIA CMS ansehen, werden
Sie in einem CMS haben, müssen
Sie bearbeiten aktualisieren, löschen Sie Beiträge, richtig, gut, dass Sie eine Klasse haben sollten, die im Wesentlichen all das behandelt. Es ist Ihre Post Art Klasse und es tut alles, was für dieses
bestimmte Objekt getan werden muss . So wird es Ihnen erlauben, es zu erstellen. Es wird die gesamte Interaktion mit der Datenbank durchführen, die mit Ihrer
Datenbankklasse geschehen muss . Das muss geschehen, um es in die Datenbank einzufügen. Es wird die ganze Interaktion tun, die Sie brauchen, um Sachen aus der Datenbank upstate zu ziehen, Dinge in der Datenbank zu
aktualisieren, Dinge in der Datenbank zu
löschen und alles andere, was Sie tun möchten, das Sie denken dazugehört. Also, jetzt haben Sie, dass alle in einer Klasse enthalten sind und alles, was Sie tun müssen, anstatt diesen Code jedes Mal
neu zu schreiben, jedes Mal, wenn Sie einen Beitrag aus der Datenbank erhalten möchten, anstatt die gesamte Datenbank neu zu schreiben das notwendig ist, um dies zu tun, haben
Sie stattdessen eine Funktion oder eine Methode innerhalb Ihrer Klasse erstellt, die all das erledigt, und vielleicht alles, was Sie tun müssen, um zu tun. Sagen wir einfach dieses Wort, das Sie in der Post I d übergeben und so sagen wir, das ist, ah, get Funktion. Es ist eine Lesefunktion. Sie übergeben in der Post I d. Und es tut die gesamte Verbindung, die mit der Datenbank verbunden ist,
bekommen, dass ich d. von der Datenbank. Keine Daten zu ziehen, sie in etwas zu
setzen, mit dem Sie arbeiten können, sei es ein Objekt oder ein iranisches PHP und dann an Sie zurückgeben. Also, jetzt hier könnten Sie sein wie Post entspricht meiner Funktion. Und jetzt, auf dem Post, hätten
Sie Zugriff auf, sagen
wir, keinen Echo-Post-Echo-Post-Inhalt usw. Sie hätten Zugriff auf alle darin enthaltenen Daten. Und dann gibt es vielleicht Hilfsfunktionen, die Sie innerhalb dieser Klasse haben, die es Ihnen
erlauben , ich weiß es nicht. Vielleicht willst du ein Echo Post, und du wirst Format machen und, ah, Datum
posten oder so etwas. Okay, und vielleicht würdest du einfach,weißt
du, weißt
du, vielleicht müsstest du anziehen, wenn du Post Date anrufst. Es ist bereits formatiert. Das
könntest dunatürlichtun. natürlich Aber die Idee ist, dass Sie Methoden erstellen können, die Helfer sind oder die es Ihnen ermöglichen,
etwas mit diesem Objekt zu tun , das Sie vielleicht tun möchten. Die ganze Idee ist also wieder, nicht nur zu wissen, wie man eine Klasse erstellt, sondern wie man sie nimmt. Und dann für die Objekte, die Sie in Ihrer Anwendung haben und die Dinge, die Sie wollen, diese Objekte in der Lage sein, Ihr Geschlecht zu tun. Die allgemeine Faustregel ist, dass Sie eine Klasse für jeden von denen erstellen der all
das erledigt, was Sie jetzt tun müssen. Das nochmal und ich will hier nicht zu verwirrend werden. Aber das ist eine sekundäre Schicht, dass diese Klassen auf einer Grundschicht sitzen würden, ah , die Ihre Datenbankklasse wäre. Hast du irgendwelche Dinge gesehen, die ich mit Datenbankklassen gemacht habe? Sie wissen, dass diese Klassen Funktion haben. Sie haben grundlegende interaktive Datenbankinteraktionsfunktion, so dass Sie nicht alle Abfragen schreiben müssen. Sie können Methoden einfach innerhalb der Datenbankklasse aufrufen, damit Ihre Post-Klasse die Datenbank nicht direkt
abfragt. Es würde Methoden aus Ihrer Datenbankklasse aufrufen, und so ist es, wie Sie eine Anwendung schichten. Wenn Sie sich sagen, zum Beispiel
WordPress, WordPress, sie haben eine WordPress-Datenbankklasse. Das einzige, was die Datenbankklasse tut, ist die Interaktion mit der Datenbank. Es gibt also ein paar Methoden, wie Ergebnisse Get row Queary Update. Löschen Sie etcetera, bei denen es sich um Methoden handelt, die Sie aufrufen, und Sie führen die Abfragen nicht aus. Sie geben nur Daten ein. Sie übergeben eine Information, die an, dass die Methoden die Parameter erfordern, und es erledigt alle Datenbank-Sachen für Sie verbinden, die Abfragen
ausführen und die Ergebnisse
zurückgeben, behandelt all dies. Das ist also eine Basisklasse. Aber darüber hinaus haben
sie eine Abfrageklasse in diesen Abfrageklassen, wie sie nach Beiträgen und Seiten und
Kategorien abfragen und so weiter. Die Datenbankklasse ist also eine Grundklasse, die eine Basisklasse ist, die direkt mit
der Datenbank interagiert . Queary ist eine Klasse, die nie mit der Datenbank interagiert. Alles, mit dem es je interagiert, ist Theorie. WordPress-Datenbankklasse. Also wieder, das ist, wie Sie Schicht. So verwenden Sie Klassen, um eine Anwendung zu schichten. Und das ist die Sache, die ich möchte, dass Sie anfangen, darüber nachzudenken, ist, wie kann ich anfangen, all
diesen Code zu nehmen , den ich habe, der vielleicht alle Arten von Verflochten zwischen den Abfragen und den
Front-End-Ansichten , die ich in der Datenbank anzeige, es ist alles Art von Mischung zusammen. Wie kann ich anfangen, es auseinander zu ziehen, um einzelne Klassen zu erstellen, die einzelne Dinge tun Haben Sie eine Klasse, die mit der Datenbank interagiert. Jede andere Klasse sitzt drauf. Jede Klasse, die mit meiner Datenbank interagieren möchte, muss meine Datenbankklasse durchlaufen. Und so habe ich, wissen
Sie, vielleicht eine Abfrageklasse oder eine Postklasse und dann, wissen
Sie, vielleicht haben Sie eine Views-Klasse, die darüber sitzt, eine Ausnahme. Wir könnten über mehr von dem Zeug reden, aber ich wollte nur, dass Sie in diese Richtung denken. Also wieder, in der Lage zu
sein, das zu tun, was wir hier getan haben, ist die Grundlage dafür. Das ist also eine wirklich, wirklich Art unkomplizierter, einfacher Weg, wie man eine Klasse erstellt, wie man eine Eigenschaft erstellt, wie man eine Methode in Haltung erstellt, eine Instanz der Klasse
datiert und dann Aufrufen einer Methode aus dieser Klasse. Also hoffentlich etwas davon rausbekommen. Wir werden natürlich weiterhin darauf aufbauen, während wir durch gehen. Ah, den Rest dieser Lektionen werde ich in den nächsten Videos sehen
3. Konstrukteure: Hey, John Morrissey, John Morse online dot com Diese Lektion. Wir werden über Konstrukteure reden. Und was Konstruktoren Ihnen erlauben, ist, etwas automatisch laufen zu lassen, wenn Sie und Stan eine Instanz eines Objekts setzen. Also, um Ihnen dies zu zeigen, lassen Sie uns voran und kopieren Sie einfach den ganzen Code hier und öffnen Sie unsere neue Datei. Und so werden wir eine neue Funktion namens Public Function und unter Unterstrich
Unterstrich Konstrukt erstellen. Das ist also der Name. So benennen Sie den Konstruktor. Wenn Sie sich wirklich alte Tutorials ansehen, sehen
Sie möglicherweise Tutorials, in denen sich eine Methode befindet, die denselben Namen wie die Klasse hat. Also könnte es so etwas wie,
ähm,
Funktion meiner Klasse gewesen ähm, sein. So wurden Konstruktoren in der Vergangenheit gemacht. Aber jetzt gibt es eine tatsächliche Konstruktormethode, die Sie verwenden möchten. Ich denke, an dieser Stelle wird es sogar. Wenn Sie den Namen der Klasse für eine Weile verwenden, würden beide diese Konstruktormethode funktionieren und die Funktion mit dem gleichen Namen ist die Klasse. Ich glaube nicht, dass die Funktion mit dem gleichen Namen der Klasse sogar mehr funktioniert, und unabhängig davon, dass Sie das verwenden möchten. Sie möchten diese Konstruktionsmethode hier verwenden. Also, was das tut, ist alles, was Sie in diese Methode setzen. Wenn Sie und Stan eine Inzidenz der Klasse angegeben haben, wird diese Methode automatisch ausgeführt. Du musst es nicht nennen oder so was. Und das ist gut für alles, was Sie tun müssen, um Ihre Datenbank einzurichten. Mich? Ich weiß es nicht. Vielleicht möchten Sie vielleicht setzen, wenn Sie eine Datenbank-Klasse schreiben, möchten
Sie Ihre meine Fortsetzungs-Verbindungsdetails dort einfügen? Um Oder vielleicht gibt es etwas, das Sie mit Post in unserem tun müssen Es gibt viele Dinge, die Sie innerhalb eines Konstruktors tun möchten. Aber die Hauptsache ist, dass es läuft, wenn dieser Kunde Klassen ist und Stan sitzt. Also zeig dir das einfach. Was wir tun werden, ist, dass wir diese Var nehmen, und wir werden sie zu Mann ändern. Coop, geht es mir gut? Eso, was wir hier im Wesentlichen getan haben, ist, dass wir diese Variable haben, die wir
hier eingerichtet haben , aber jetzt in unserem Konstruktor wurden sie auf etwas anderes zurückgesetzt. Und so, wenn wir acht Instanz eine Instanz dieser Klasse. Was passieren sollte, ist, dass dies läuft. Und das wird überschreiben, was wir hier festgelegt haben. Eigentlich, sehr schnell. Ich muss diese Post-Idee entfernen, weil wir eigentlich keine haben. Und jetzt, wenn wir hierher kommen, um dies zu wiederholen, sollte
es widerspiegeln, was wir in unserem Konstruktor hier gesetzt haben. Also lasst uns voran gehen und diese Seite laden und ihr könnt sehen, dass wir wütend werden. Hoopers, ich Also das ist, was Konstruktoren uns erlauben zu tun. Und jetzt muss es nicht nur Variablen überschreiben, die buchstäblich
alles sein könnten , was Sie hier tun möchten, das Sie einrichten müssen. Das muss genau laufen, wenn diese Haltung nicht gesättigt ist, von der der Rest der Klasse jetzt
ziemlich abhängig sein wird . Eine andere Sache, die Sie mit Konstruktoren tun können und wichtig zu wissen ist, dass Sie
Variableneinfügen können , dass Sie
Variablen Gehen wir
also voran und ändern Sie einfach eine Variable, die hier Text genannt wird. Nun, anstatt das hier hart zu codieren, können
wir das loswerden. Wir könnten dies gleich Text setzen. Also, was jetzt passieren wird, ist, dass wir den Text in unsere Klasse übergeben können, wenn wir
es essen und ich zeige Ihnen, dass Sie das in einer Sekunde tun. Wir können dies übergeben und sind jetzt variabel. Ach, davon. Diese Variable wird hier auf das gesetzt, was wir übergeben. Und was Sie haben, ist eine ziemlich Standardsache, die Sie in Klassen sehen werden, dass
in der Variablendekoration erscheinen, Sie haben eine Art Standard. Dies dient jetzt im Grunde als Standard. Und hier Nein, Sie haben etwas, mit dem Sie es in Ihrem Konstruktor hier überschreiben können. Okay, wenn wir jetzt hier runterkommen, um diesen Text jetzt verwenden zu können, müssen wir unsere Klammern hinzufügen und dann können wir unseren
Text direkt hier übergeben . Also, wenn wir das speichern und aktualisieren, dass wir immer noch May Lupas I bekommen und dann können wir das in alles
ändern. Wir wollen nur Hallo sagen und Sie können sehen, dass es vorbei ist. Nun, wenn Sie anfangen, darüber ein wenig nachzudenken, können
Sie beginnen, die Macht von einigen davon zu sehen, denn jetzt können Sie. Was auch immer dieser Text
ist, Sie könnten durchgehen und vielleicht möchten Sie sich an diesem Text bilden. Vielleicht willst du Zeh. Ich weiß es nicht. Es gibt auch vielleicht auf einer, äh,
ändern, was der Text von bestimmten Bedingungen basiert, oder es gibt alle Arten von verschiedenen Routinen. Sie könnten diesen Text ausführen, der durchgegeben wurde, aber Sie könnten buchstäblich jeden Text übergeben. Und so ist dies die ganze Idee, was eine Klasse wirklich ist, wenn wir über Oh sprechen, in konzeptionellen Begriffen, dass die Klasse eine Blaupause ist und das Objekt die eigentliche Sache ist. Und es sind die Daten, die Sie haben, wenn Sie eine Instanz einer Klasse essen, die das ändert
, was Sie aus dem Blueprint erhalten. Also, weißt
du, eine Blaupause für ein Haus sagt dir nicht die Farbe des Hauses. Also, wenn Sie tatsächlich gehen und das Haus erstellen, dann entscheiden Sie sich für die Farbe. Das ist die gleiche Idee. Das sagt dir nicht, was der Text sein muss, oder? Es sagt nicht, Okay, wir haben vielleicht eine Art Standard, aber es sagt nicht wirklich, was der Text ist. Sie können jeden Text übergeben. Also, jetzt dieses Objekt. Okay, wenn wir das nochmal machen, geht es weiter. Gehen Sie einfach neue Klasse und referenzieren Sie hier neue Klasse. Wir können diesen Beitrag gleich Zeug loswerden. Das brauchen wir hier nicht. Okay, also möchte ich dir das zeigen. Wir haben also zwei verschiedene Instanzen unserer Klasse. Der Blueprint ist derselbe. Aber alles, was wir getan haben, ist zwei verschiedene Instanzen erstellt und wir haben verschiedene Daten übergeben. Also haben wir meine Klasse, und dann führen wir meine Funktion aus. Wir haben eine neue Klasse, die vorbeigeht. Hey, also wenn wir das auffrischen, sehen Sie, haben
wir High und wir haben Hey, diese Luft buchstäblich zwei verschiedene Objekte. Diese Luft, zwei verschiedene Häuser. Und die Art und Weise, wie wir sie ändern, basiert auf den Daten, die wir
hier in unsere Klasse übergeben haben . Das ist also die Macht davon. Wir ändern uns. Nichts schien diese beiden Instanzen zu bekommen. Nun, natürlich, da Sie komplexere Anwendungen haben, werden
Sie mawr komplexe Klassen haben. Sie werden verderben oder komplexe Dinge. Und so die Unterschiede hier, und vielleicht die Daten, die Sie hier übergeben werden, oder die Daten, die Sie aus einer Datenbank oder was auch immer grafisch sind . Was auch immer es tut, es wird diese beiden Objekte sehr,
sehr verschieden machen . Wenn Sie darüber nachdenken, nehmen Sie
einfach WordPress. Wenn Sie über zwei verschiedene WordPress-Beiträge denken, werden sie einen völlig anderen Titel haben? Haben Sie völlig andere Inhalte? Sie gehen haben völlig andere Featured Bild Datum, dass sie erstellt wurden, vielleicht Autor. Es gibt wirklich zwei völlig unterschiedliche, um auf einem Blogger zu posten, zwei völlig unterschiedliche, aber die Klasse Toe Blueprint, um sie zu dem Punkt zu bringen, wo sie auf der Seite angezeigt werden und in der Datenbank gespeichert werden und alles, was passieren. Die Klasse ist die gleiche, so dass Sie zwei sehr unterschiedliche Objekte aus demselben Blueprint erstellen können. Und das ist wirklich das, was objektorientierte Programmierung ist und wieder auf einzelne
Objekte zurückkommt, um einzelne Klassen zu haben, die sich dort beschäftigen und behandeln. Sie sind funktional, es ist kein hartes Fett, und ich will nicht irreführen und dann sagen, dass das eine harte,
schnelle Regel ist . Sie müssen das unbedingt tun, aber das ist die allgemeine Art und Weise, wie Sie es betrachten. Ah, zumindest in einer Baseline, wie Sie das Objekt während der Programmierung betrachten, so dass es sich wieder um Konstruktoren handelt . Das ist es, was Sie erlauben, Ihren Klassen hinzuzufügen, die sie machen, die beginnen können,
sie wirklich,
wirklichmächtig zu machen sie wirklich,
wirklich . Also hoffe, du hast was davon rausgeholt. Danke fürs Anschauen Wir werden mit dem nächsten reden.
4. Sichtbarkeit: Hallo, John Morris. Hier, John Morris, Online-Dot com. Diese Lektion werden wir in Sichtbarkeit und Sichtbarkeit befassen sich speziell mit Leichtigkeit
, kennzeichnet diese Keywords genau hier. Keine Straße, die du haben kannst. Es gibt Öffentlichkeit, es ist geschützt und es gibt Privat. Also werde ich diesen Code hier kopieren. Wir werden in unsere neue Akte gehen, und ich werde etwas sehr schnelles erstellen, das helfen wird, denke
ich, das etwas klarer
zu machen. Also werde ich eine Klasse schaffen. Neue Klasse erweitert meine Klasse. Alles klar, was das
tut, ist das Erstellen einer untergeordneten Klasse. Also diese Klasse hier, diejenige, die die Erweiterung ausführt, wird als das Kind betrachtet,
und die, die erweitert wird, wird als übergeordnetes Element betrachtet. Und der Grund dafür ist, dass, wenn Sie dies tun, was passiert, ist, dass Sie Zugriff innerhalb der neuen Klasse erhalten. Sie erhalten Zugriff auf alle Eigenschaften und Methoden, die innerhalb der
ursprünglichen übergeordneten Klasse verfügbar sind , wenn sie nicht privat sind, und damit beschäftigt sind, sind hier eine Art Ah-Bezeichner. Also möchte ich Ihnen diese Art von von oben nach unten zeigen. Also, wenn wir hier runter kommen und wir eine neue Instanz einer Klasse haben und wir unsere
Funktion nennen oder sind Methode meine Funktion Der Grund dafür, dass wir das tun können Und wenn wir
diese Seite neu laden,können
Sie sehen, dass wir hoch werden diese Seite neu laden, . Der Grund, warum wir das tun, ist, weil diese Methode auf öffentlich eingestellt ist. Wenn ich hier reinkomme und das auf etwas anderes als öffentlich setze, lassen Sie uns es
für den Anfang auf privat setzen . Wenn ich das zum Privaten gesagt
habe, bekomme ich eine Luft. Wenn ich es beschützt gesagt habe und wir dann wieder laden, komme
ich in Luft. Dies ist also die erste Art der Bezeichnung und der Weg, dies zu erklären. Ich denke, visuell wird das helfen. Aber private Methoden und Eigenschaften sind auf Lee hier verfügbar, Onley innerhalb des Funk oder der Klasse und das hat sie so privat erstellt. Sind Onley hier verfügbar geschützt sind, werden innerhalb der Klasse verfügbar sein, die
sie erstellt hat, und alle untergeordneten Klassen in Ordnung und dann werden öffentlich in der Klasse verfügbar sein, die ihn alle untergeordneten Klassen und außerhalb der Klasse
erstellt hat. Um also auf eine Methode oder Eigenschaft zugreifen zu können, muss
sie öffentlich gemacht werden. Okay, lasst uns ein paar Beispiele durchgehen. Also lasst uns weitermachen und das wieder an die Öffentlichkeit stellen. Und lasst uns weitermachen und das auf privat stellen. Jetzt könnte dein Instinkt sein Oh, nein, wir benutzen hier privat und wir nennen es hier. Und dann rufen wir das hier draußen an, also wird das nicht funktionieren. Und sie sind tatsächlich, das funktioniert. Und der Grund dafür ist, dass das, was wir hier nennen, auf Lee, die meine Funktionsmethode ist . Es ist die meine Funktionsmethode, die jetzt auf diese Variable verweist. Und diese beiden Dinge befinden sich innerhalb derselben Klasse, so dass meine Funktion diese private Variable verwenden kann. Okay, deshalb funktioniert das. Wir würden nicht in der Lage sein, wenn wir versuchen, hier runter zu kommen und Var so zu gehen, würden
wir nicht in der Lage sein, direkt auf Schmalz zugreifen, weil unser Privateigentum ist. Es heißt also, wir können nicht auf Privateigentum zugreifen. In Ordnung, also ist das gut im Hinterkopf zu behalten. Und dann ein weiteres Beispiel, das sich mit den untergeordneten Klassen beschäftigt. Wenn wir hier runter kommen und wir schaffen eine neue funktionale öffentliche Funktion wird es
Anzeige und innerhalb davon nennen . Wir werden einfach Ah,
dies und var Echo . Okay, also werden wir diese Var widerspiegeln. Denk dran, das ist unser Privat. Dies ist ein Privateigentum, daher sollte es hier unten nicht verfügbar sein. Also, wenn wir dies in eine neue Klasse ändern und wir das in ah geändert haben, zeigen und lassen Sie uns einfach diese Entspannung loswerden, wird
es das für eine Sekunde verlassen. Also, was wir jetzt versuchen zu tun, ist innerhalb des Displays. Wir versuchen, dieses Privateigentum zu widerspiegeln. Wenn wir das versuchen, sehen
Sie, es ist leer, wir bekommen nichts. Und das liegt daran, dass wir keinen Zugang dazu haben. Nun, wenn ich hierher komme und ich dies auf geschützt ändere Also jetzt denken Sie daran, geschützt ist für die ursprüngliche Klasse und alle untergeordneten Klassen verfügbar, und ich führe dies erneut aus. Jetzt habe ich Zugriff darauf. Ok. Also, wieder, das ist der Unterschied zwischen privat geschützt und öffentlich. Nun, die Instanzen, in denen Sie dies oft tun möchten, haben
Sie möglicherweise eine Methode, die Sie innerhalb einer Klasse verwenden, die Sie Onley
innerhalb dieser Klasse verwenden möchten . Gutes Beispiel. Ich kann mir vorstellen,
dass Sie eine Postklasse erstellen und sagen wir, wenn Sie die Postdaten aus der
Datenbank ziehen , bevor Sie sie anzeigen, möchten
Sie die Zehe in irgendeiner Weise formatiert. Also WordPress, zum Beispiel, hat dies, ah, diese ah Funktion oder diese Methode namens WP Auto Top unsere Auto WP Auto P oder
so etwas ? Im Grunde genommen nimmt es das, was es vom Rich-Text-Editor erhält
, der anstelle von Absatz-Tags Zeilenumbrüche hinzufügt. Wenn Sie also in WordPress schreiben und einen neuen Absatz erstellen, wenn dieser in
der Datenbank gespeichert wird , wird
er nicht in Absatz-Tags gespeichert, die mit Break-Tags gespeichert werden. Also, was WP Auto P tut, ist es, wenn es das aus der Datenbank packt und diese ändert? Es ist eine Art komplizierte Formatierungsmethode, aber es ändert diese Break-Tags und ermittelt heraus, wo die Absätze, in denen sie eigentlich sein
sollen, Absatz-Tags verwenden. Es ist also nur eine Formatierung Sache. Nun, diese Formatierungsmethode ist möglicherweise nicht etwas, das Sie für alles andere zur Verfügung stellen möchten und nur um einen feinen Punkt darauf zu setzen. Wenn Sie
beispielsweise eine Formatierungsmethode für
Ihre Postklasse haben ,möchten
Sie das wirklich nicht haben,als auch für verfügbar ist,
sagen Sie Ihre Kategorieklasse. , möchten
Sie das wirklich nicht haben, als auch für verfügbar ist, Okay, damit Sie wirklich möchten, dass das eine private Methode ist, weil Sie keine
Art mit einer Kategorieklasse verwenden möchten , die eine Methode aus Ihrem Post-Klassiker zwei
völlig verschiedene Objekte verwendet . Das ist nicht wirklich eine gute Sache, dies bei einer Best Practice zu tun. Wenn Sie eine Formatierungsmethode erstellen möchten, die Sie dann in,
sagen wir,
Kategorie und Post auf DSO vierte verwendet sagen wir, . Wo Sie tun würden, ist diese Formatierungsmethode für Meth aus der Post-Klasse zu nehmen und Sie würden eine Formatklasse erstellen, und dann würden Sie jedes Mal, wenn Sie etwas formatieren wollten, diese Formatklasse aufrufen, und Sie könnten es aus der Kategorie nennen. Oder du könntest es von der Post anrufen. Du könntest es von überall anrufen, aber du würdest es tun. Sie würden es in eine eigene Sache kapseln, wenn Sie es in mehreren
Klassen verwenden möchten , Sie möchten keine Methode verwenden,
Sie kennen eine Klasse in einer anderen Klasse. Generell möchten
Sie sie verkapselt halten, um ihre eigenen Dinge zu sein. Und so ist eine der Möglichkeiten, die Sie tun können, indem Sie sie private Methoden machen. Wenn es sich um eine private Methode oder eine private Eigenschaft handelt, können
andere Klassen darauf zugreifen. Oder wenn es ach ist, geschützt. Andere Klassen können darauf zugreifen, es sei denn, sie werden erweitert. Ah, die eine Ah, sie erweitern die ursprüngliche Klasse. Also nochmal, das ist der Unterschied zwischen der Öffentlichkeit. Peyron schützte, dass einige der Hintergrundinformationen im Zusammenhang darüber, wann Sie diese Ah verwenden
möchten , und so weiter. So hoffentlich gefunden haben, dass hilfreich. Danke, dass du zugesehen hast, werden wir in der nächsten versteckt.
5. Erhaltung: Hey, da. John Morrissey, John Morse online dot com Diese Lektion. Wir werden über Vererbung reden, da wir etwas angefangen haben. letzte Lektion würde weitergehen und irgendwie alles in dieser Lektion gehen. Also lasst uns weitergehen und kopieren. Dieser Code, den wir von weniger als vier hatten, wird hier zu dieser Lektion kommen. Und so ist das Erweitern einer Klasse eigentlich ziemlich einfach. Und was es Ihnen ermöglicht, ist, alle Funktionen zu erben, die nicht privat von der ursprünglichen Klasse sind. Also, wenn wir darüber sprechen und wir eine neue Klasse haben, die meine Klasse neue Klassen erweitert, was wir die untergeordnete Klasse und meine Klassen nennen würden, was wir die Elternklasse nennen würden, da neue Klasse meine Klasse erweitert, ist
meine Klasse die Eltern und neue Klassen. Das Kind erbt neue Klassen und
erbt von meiner Klasse. Okay, wieder, wieder, was uns das erlaubt, ist alles, was geschützt oder öffentlich ist, als wir
innerhalb dieser neuen Klasse verwenden können . Nun, die Art und Weise, wie wir das sehen können, ist, wenn wir zu gehen und wir dies in eine neue Klasse ändern Jetzt denken Sie daran, wir haben keine Funktionalität in einer neuen Klasse genau hier. Alles, was wir tun, ist, meine Klasse zu erweitern. Aber wir nennen dies immer noch meine Funktionsmethode hier. Also lasst uns voran gehen und das laden. Und sehen Sie, wir bekommen das hier hoch. Obwohl wir nichts innerhalb der neuen Klasse hinzugefügt haben, haben
wir die gesamte Funktionalität von unserer ursprünglichen Elternklasse geerbt. Nun, nur um Ihnen zu zeigen, wenn wir dies auf geschützt ändern und wir das neu laden, dann können Sie sehen, dass wir diesen Aufruf zu dieser geschützten Methode erhalten. Okay, also rufen wir das außerhalb der Klasse hier auf, und diese Funktion ist geschützt. Deshalb haben wir keinen Zugang dazu. Und wenn wir dann, weißt du, so
privat , werden
wir das natürlich auch bekommen. Nun,
etwas, das wir tun könnten, ist, wenn wir das wieder in geschützte ändern. Und sagen wir, wir fügen hier eine neue Methode hinzu. So tun öffentliche Funktion, und wir werden Display und Innendisplay zu tun. Alles, was wir tun, ist, dass wir das nennen und meine Funktion aufrufen und dann hier draußen unser Semikolon setzen . Oh, hier eine neue Klasse, die wir nennen, zeigt die neue Methode an, die wir unsere neue Klasse erstellt haben. Also lasst uns weitermachen und das laufen, sehen
Sie, wir werden wieder hoch. Nun ist der Grund, warum wir hoch werden, weil wir von uns kommen, rufen wir meine Funktion jetzt aus einer Klasse
heraus, die sie erweitert. Obwohl es geschützt ist, rufen
wir es immer noch innerhalb einer Klasse auf, die es erweitert. Das ist also erlaubt. Und jetzt rufen wir die öffentliche Funktionsanzeige auf. Das ist es, was wir hier nennen. Was wir also tun müssen, ist, wenn wir das auf Privat setzen, setzen
wir das auf Privat. Ah, jetzt werden wir den tödlichen Luftanruf an private Methode bekommen. Okay, also sind wir nicht in der Lage, das zu tun. So funktioniert die Vererbung in all dem. Jetzt noch einmal, Sie wissen, wie Sie Teoh wollen, verwenden Sie diese Beispiele, wie Sie dies verwenden könnten. Ich meine, sagen wir es. Ein Beispiel, an das ich denken kann, ist, sagen
wir, Sie bekommen ah, auf SDK von einer Website, wie vielleicht YouTube für die Interaktion mit Es ist ein P I, und Sie wollen einen Wrapper um diesen Nun bauen, eine der Möglichkeiten, die Sie könnten das tun, wäre einfach die Klasse oder Klassen zu erweitern , die normalerweise in diesem SD-Fall sind,
es wird
eine Standardart von basierter Klasse geben,die Sie damit Sie diese es wird , Klasse erweitern können. , um Um, umseine Funktionalität zu nutzen,
bringen Sie alle verfügbaren Funktionen
in Ihre neue Klasse, die Sie richtig werden,
das ist ein Rapper,
das, weil Sie verwenden werden, um eine bestimmte Art und Weise gewesen zu sein, so dass Sie könnte etwas nehmen, das da draußen ist, dass jemand dort geschrieben ist, der existiert. Oder vielleicht haben Sie geschrieben und Sie könnten es erweitern und dann Ihre eigene sehr spezifische
Funktionalität hinzufügen oder Sie haben, sagen wir, eine Datenbankklasse. Und sagen wir, wir haben über eine Abfrageklasse in der Datenbankklasse gesprochen. Vielleicht möchten Sie Ihre Datenbankklasse verwenden, indem Sie sie einfach mit Ihrer
Abfrageklasse erweitern . Jetzt möchten Sie ein wenig vorsichtig sein, weil die Art und Weise, wie die Mehrfachvererbung funktioniert. Und es könnte ein wenig schwierig werden, wenn Sie wissen, wenn Sie Ihre Datenbankklasse und in der Abfrage verwenden möchten und in einer anderen Klasse in einer anderen Klasse in einer anderen Klasse als die alle ein wenig schwierig werden können. Aber ah, weißt
du, wenn das die Abfragen sind, die einzige Klasse direkt mit der Datenbankklasse interagiert, dann wäre das vielleicht eine Option, für die Sie das tun könnten. Ähm, das ist nicht die einzige Möglichkeit, mit der Datenbankklasse zu interagieren, aber auch hier ist
es eine Option. Oder vielleicht erstellen Sie eine Objektklasse, die wie ein Basisframework ist. Und dann erstellen Sie eine sehr spezifische Post-Klasse, die zu dem hinzufügt, was Sie ein
Objekt haben , so dass Sie,
ah, Dinge
haben können , die sehr spezifisch für Post. Also wieder, ich werde nur auf einige Beispiele für verschiedene Möglichkeiten geworfen, die Sie möglicherweise verwenden können. Aber wieder, die große Sache ist,
dass diese New Klasse alle
Eigenschaften und alle Methoden aus ihrer Elternklasse nehmen die große Sache ist,
dass diese New Klasse alle
Eigenschaften und alle Methoden aus ihrer Elternklasse nehmenwird. Ah, solange diese entweder öffentlich oder geschützt sind. Jetzt gibt es ein paar Dinge zu beachten. Erstens, wenn es um Konstruktoren geht, ruft
die untergeordnete Klasse den Konstruktor der Elternklasse nicht automatisch auf, so dass Sie eine bestimmte Syntax verwenden müssen. Also gehen wir an die Öffentlichkeit und gehen zum Funktionieren. Und wir werden unseren eigenen Konstruktor in unserem ah schaffen, innerhalb unserer Kinderklasse. , Wenn wir das so lassen,können
Sie sehen, dass wir zurückkehren, dass ich Coop mag. Warum jetzt? Warum sind wir dahin zurückgegangen? Weil wir überschrieben haben, bevor wir keinen Konstruktor in unserer Kind-Klasse hatten. Also haben wir gerade die Elternklasse verwendet. Jetzt haben wir tatsächlich Konstruktor-Insider-Kind-Klasse erstellt. Es überschreibt die übergeordnete. Also wird dieser Elternteil nicht laufen. Deshalb gehen wir zurück auf die Zehe. Ich mag Coop, weil wir diesen übergeordneten Konstruktor benötigen, um zu überschreiben, was in unserer Variablen
hier war . Deshalb passiert das jetzt. Vielleicht ist es der Fall, wo Sie möchten, dass dieser Konstruktor noch ausgeführt wird. Was Sie also tun, ist, dass Sie übergeordneten Doppelpunkt verwenden und dann konstruieren, also
rufen Sie im Wesentlichen diese übergeordnete Methode auf . Jetzt wird dies dazu führen, dass dieser übergeordnete Konstruktor ausgeführt wird. Also,
wenn wir dieses Ah Oh erneut ausführen , müssen
wir unsere Variablen übergeben, also lasst uns Text gehen und wir brauchen Text. In Ordnung, also haben wir Variable. Also müssen wir sicherstellen, dass wir die da reinbringen. Also, wenn wir das erneut ausführen, gehen
wir zurück in die Höhe. Das ist also etwas, das man beachten muss, wenn man damit arbeitet. Das eröffnet auch etwas. Ah, dass wir vielleicht nicht, dass das nicht sofort offensichtlich ist, aber es zeigt Ihnen, wie Sie dies tun können, weil wir diese Konstruktorklasse hier
haben und wir eine Konstruktormethode hier haben. Du könntest denken. Nun, wir haben zwei mit dem gleichen Namen. Auf diese Weise überschreiben Sie Methoden aus der übergeordneten Klasse in Ihrer untergeordneten Klasse. So zum Beispiel könnten
wir
zum Beispieleine Methode namens public erstellen und wir könnten meine Funktion wieder ausführen. Das ist der gleiche Name ist, was wir jetzt hier oben haben, anstatt einfach nur Ah zu tun, lassen Sie mich voran und meine Funktion. Schlüsselwort. Da bin ich ziemlich schrecklich. Eigentlich bemerken
Sie vielleicht, dass ich das mache, selbst wenn ich mich nur alleine anziehe. Also meine Funktion jetzt, was wir tun können, ist vielleicht, dass wir das ändern wollen. Vielleicht wollen wir Eco diese Var nehmen, und dann fügen wir etwas hinzu. Das ist wie, ähm hi. Nun, es ist nur aus der Zeit, seit wir es im Original gemacht haben. Mein Name ist John. Okay, also lasst uns weitermachen und das auffrischen. Sie können sehen, jetzt bekommen wir Hi, mein Name ist John. Wir haben also zwei Methoden mit dem gleichen Namen, aber es gibt keinen Fehler, denn was PHP tut, ist, wenn Sie so erweitern, wird
diese Klasse die Klasse im Elternteil überschreiben. Okay, so können Sie eine Klasse erweitern und Zugriff auf die Daten haben, die in der
übergeordneten Klasse verfügbar sind , oder die in der übergeordneten Klasse verfügbaren Funktionalitäten. Und wenn es dann bestimmte Methoden innerhalb dieser Klasse gibt, die Sie überschreiben möchten, können
Sie das auch tun. Und natürlich, wenn Sie hier reinwollen, können Sie Eigenschaften überschreiben. Ich meine, so gut du könntest, weißt
du, diese Var ist okay, also lass uns sehen, was uns das gibt. Jetzt haben wir etwas anderes. Mein Name ist John. Warum haben wir das? Denn denken Sie daran, wir gingen in der Höhe ist alles, was wir in, so dass das geht zu dieser Klasse hoch. Aber dann führen wir das durch unsere Eltern. Unser Elternteil kommt hierher und sagt, OK, dass diese Var jetzt gleich dem Test ist. Dann haben wir gleich danach diese Var in etwas anderes geändert. Also, das wird im Grunde ein, äh, über geschrieben von diesem hier direkt hier. Und jetzt ist es das, was wir hier unten nutzen werden, wenn wir dies tun, hat weit von unserer
Zeit gestoppt . Mein Name ist John. Okay, das könnte
also ein bisschen verwirrend sein. Aber was ich versuche, Ihnen zu zeigen, ist, dass Sie praktisch alles innerhalb der
Elternklasse überschreiben können. Die Methoden, die Eigenschaften, all diese Dinge. So können Sie die gewünschte Funktionalität greifen, und wenn Sie möchten, gibt es Sie, was da ist hinzufügen möchten, können
Sie es hinzufügen, indem Sie neue erstellen. Sie können neue Methoden innerhalb von hier erstellen, wie wir es mit der Anzeige getan haben. Sie können auch vorhandene Methoden und vorhandene Eigenschaften darin überschreiben. Nun, der letzte Vorbehalt dafür. Nehmen wir an, ich setze dieses Schlüsselwort endgültig hier auf meine Funktion. Gehen Sie voran und laden Sie neu, dass Sie sehen, wir sagen, kann die Methode meiner Klasse,
meine Funktion nicht überschreiben . Wenn Sie also Ihre übergeordnete Klasse erstellen und eine Methode erstellen möchten, die nicht von untergeordneten Klassen überschrieben werden kann, müssen
Sie dieses letzte Schlüsselwort direkt hier verwenden, und das verhindert, dass jemand dies tun kann. Okay, das ist
also ein wirklich tiefer Einstieg in die Vererbung. Hoffentlich ist
das ziemlich klar für Sie. Wenn nicht, würde
ich sagen, einfach irgendwie wieder durchgehen und dann tatsächlich dort reingehen und anfangen zu vermasseln. Und sie ändert die Schlüsselwörter von privat zu geschützt erweitert eine neue Klasse darüber. Geh einfach da rein und verwirr dich damit. Ich habe neulich dieses große Zitat gehört. Diese Klarheit kommt von Aktion, nicht von Gedanken, so dass ich denke, dass das sehr, sehr wahr ist. Und das wird in diesem Fall
sehr, sehr wahr sein. Je mehr die Botschaft, dass je mehr Sie es verwenden, desto mehr wird es irgendwie Sinn machen und und und klar für uns werden. Also geh da rein und fange an, mit diesem Zeug , in
Ordnung, das wird es für diese Lektion tun. Danke fürs Zuschauen. Wir reden mit Ihnen im nächsten
6. Statische Methoden und Eigenschaften: Hey, John Morris Hier, Joe Morris, Online-Dot com. Diese Lektion. Wir werden in statische Eigenschaften und Methoden eingehen und wirklich über das statische
Schlüsselwort sprechen , weil das ist, was Sie beides hinzufügen. Das macht sie tatsächlich statisch. Also lasst uns voran gehen und diesen Code direkt hier kopieren und in unsere neue Datei Haar gehen. Und wir werden zitieren, irgendwie vereinfachen das für eine Sekunde, damit ich Ihnen das zeigen kann. Ich werde den Konstruktor für eine Sekunde loswerden. Ich werde das wieder in die Öffentlichkeit ändern, und wir werden diese Öffentlichkeit ändern, und wir nennen es wird dieses Wort statisch hinzufügen. Okay. Und dann kommen wir hierher und lassen Sie uns eine neue Instanz unserer Klasse instanzieren. Also gehen wir. Meine Klasse entspricht neu meiner Klasse. Sie haben jetzt keinen Konstruktor, also müssen wir uns darüber keine Sorgen machen. Und mal sehen, was passiert, wenn wir meinen Kurs gehen. Du kennst meine Funktion. Also tun wir im Grunde, was wir vorher getan haben, oder? Wir haben eine Methode. Meine Funktion, wir verweisen auf unsere Eigenschaft erscheinen und wir sind hier draußen und wir wollen nur das Echo und tatsächlich, eine weitere Sache, die ich tun muss, bevor wir dies tun, können
Sie oder nicht tun müssen, um dies zu tun. Mein System unterdrückt zufällig Lüfte. Also muss ich die Luftberichterstattung einschalten und so alle wieder, Sie können oder nicht tun müssen, um dies zu tun, weil einige der Fehler hier sind nicht wirklich tödliche Lüfte. Sie werden Notizen sein. Und deshalb möchte ich, dass du diese sehen kannst. Und wenn ich das nicht tue, wirst
du nicht in der Lage sein, diesen jemanden zu zerstören, der Airs zeigt, und wir werden diesen Teoh wahr machen. Okay, das sollte
also das sein, was wir hier brauchen. Also lasst uns voran gehen und das neu laden und nur sehen, was passiert. Es heißt also strenge Standards, die auf statische Eigenschaft zugreifen. Meine Klasse unserer als nicht statisch in Blase online neun. Also genau hier referenzieren wir sind variabel, wie wir es vorher getan haben. Aber jetzt gibt es uns diese Luft, die wir als nicht statisch bezeichnen. Dies ist also die erste Art von Einführung in das, was dies tatsächlich bedeutet, Wenn wir A
erstellen, wenn wir eine statische Variable oder eine statische Methode wie diese erstellen Was es tut, ist es so
macht, dass diese Variable zum Beispiel existiert grundsätzlich außerhalb der ich sagen würde, der Objektbereich dieser Klasse bedeutet, wenn ich versucht habe, dies zu verwenden Wenn ich versuche, es irgendwo
in meiner Klasse zu verwenden und diese Variable hier zu verwenden, wird
es nicht funktionieren, weil ich es in eine statische Variable geändert habe. Und es ist nicht dazu gedacht, im Objektbereich verwendet zu werden, okay? Und es ist dasselbe, wenn ich versuchen würde, hier runter zu kommen und einfach versuchen, direkt auf die
Immobilie zuzugreifen . Wenn ich also versuche, direkt darauf zuzugreifen, laden
Sie weiter und greifen Sie erneut auf die statische Eigenschaft meiner Klasse als nicht statisch zu. Wenn Sie es also statisch machen, macht
es es so, dass Sie nicht über dieses Objekt darauf zugreifen können. Seit der Syntax ist
es nicht mehr ein Teil dieses Objektkontexts. Also, was Sie tun müssen, um darauf zugreifen zu können, ist, dass Sie das verwenden müssen, um auf das zugreifen zu und was tatsächlich direkt ist. Also, jetzt werden wir meine Klasse machen, und du hast das vielleicht schon mal gesehen, und dann lass uns meine Funktion so machen, okay, und eigentlich brauchen
wir Teoh. Eigentlich ist
es weit und ich denke, es ist so. Also, wenn wir den Zugang haben wollen, war
der Schlüssel so. Wir müssen sichergehen, oder das Eigentum. Wir müssen sicherstellen, dass wir es hier in eine tatsächliche Variable setzen . Also lasst uns voran gehen und das neu laden und lasst uns weitermachen, Echo es. Also jetzt kriegen wir, ich mag Reifen. Jetzt haben wir Zugang dazu. Also, was ich gerade getan habe, als ich in der Lage war, auf eine Klasseneigenschaft zuzugreifen, ohne eine
Instanz der Klasse zu essen . Das ist letztendlich, was statische Keywords Ihnen erlauben, dio. Und wir können das Gleiche mit unserer Methode hier machen. Also lasst uns dies in Static ändern. Lassen Sie uns das wieder in reguläre ändern, da wir das
tun werden . Also lasst uns weitermachen und meine Klasse machen. Meine Funktion wie diese möchte ich Ihnen das zeigen. Jetzt können Sie fatale Luft mit diesem sehen, wenn kein Objektkontext. Also wieder greifen wir auf. Dies ist eine statische Funktion, also sind wir nicht im Objektkontext. Das funktioniert also nicht daran. Lee wird erstellt, wenn Sie eine Instanz e acht Eine Instanz der Klasse. Das ist, wenn das verfügbar wird. Da wir das nicht getan haben, ist
es nicht verfügbar. Also lasst uns weitermachen und das tun. Äh, huh. Im Moment, Nein, wir haben das hier nicht statisch gemacht,
also werden wir fortfahren und diesen Zugriff auf nicht deklarierte statische Eigenschaft aktualisieren. Also, jetzt kommen wir wieder hierher und wir ändern dies in Static, und wir laden neu. Und jetzt bekommen wir, was wir wollen. Also möchte ich Ihnen nicht zeigen, dass, wenn Sie anfangen, das statische Schlüsselwort zu verwenden, es beginnt, alles zu übernehmen, was Sie dio. Du willst also ein bisschen vorsichtig sein, wie du das benutzt? Nun, die Realität ist, dass Sie fragen könnten,
Nun, Nun, warum sollte das in erster Linie verwendet werden, das wurde verwendet. Ah, das wurde verwendet, bevor wir Namensräume hatten, und es wurde im Kontext verwendet, dass Sie keine erstellt haben. Dies nahm im Grunde prozeduralen Code und legte ihn in eine Klasse, und Sie benutzten im Wesentlichen die Klasse als Namensraum . Und so würde ich das Pseudo nennen. Dies wurde für Pseudoobjekt oder hasste Programmierung in dem Sinne verwendet, dass Sie wissen, Sie waren nicht Sie waren nicht notwendigerweise eine Post sehr Postklasse in einer Kategorie Kunststoff zu erstellen, Sie nahmen im Grunde nur Sie haben nicht alles auseinander gebrochen und tatsächlich leben bis zum Geist dessen, was Objekt während der Programmierung ist. Und ich sage nicht, dass ich diese Leute nicht anscheue. ich nicht. Ich sage nicht, dass das eine schreckliche Sache ist oder was auch immer. Ich sage nur, dass das im Allgemeinen nicht so etwas verwendet wurde. Dies wurde in einem Kontext verwendet, in dem Sie gerade mehr von einer Sammlung von Methoden innerhalb Ihrer Klasse hatten und Sie eine Sammlung von Eigenschaften hatten und Sie sie nur innerhalb
der Klasse platziert haben, um zu verhindern, dass sie sich im globalen Namensraum befinden und den globalen Namensraum verwirren und Kollisionen mit anderen Variablen und von anderen Anwendungen
und so weiter haben . Die Idee war also, ihn in eine Klasse zu stellen und die Verwendung der Klasse ist eine Art Namensraum, aber immer noch in der Lage zu sein, direkt auf diese Dinge zuzugreifen. Und
wenn Sie, wenn wir das hier aus der Klasse nehmen, und wir nur meine Funktion hatten. Wir könnten meine Funktion einfach so anrufen, oder? Wir müssten nicht acht instanzieren. Eine neue Instanz einer Klasse und all diese Dinge. Statische Schlüsselwörter ermöglichen es Ihnen, etwas Ähnliches zu tun. Du musstest nur meine Klassenbezeichnung hinzufügen. Und jetzt können Sie direkt auf Ihre Funktionen zugreifen. Du könntest darauf zugreifen. Ah, weißt
du, du bist direkt deine Immobilien. Und wenn Sie wollen, Teoh Referenz eine Eigenschaft erscheinen, wie wenn wir tun, lassen Sie uns
das einfach tun, gehen. Meine Var. Und das ist im globalen Namensraum, richtig? Es ist nicht innerhalb einer Klasse innerhalb einer Funktion innerhalb eines Namespaces, jeder Schnittstelle,
alles, was es direkt in PHP ist. Das ist also globaler Namensraum. Also, jetzt erstellen wir eine Funktion und wir wollen Echoups, reparieren sie in einer Sekunde, meine Var, und wir werden das meinen Funk nennen. In Ordnung. Ah, funktioniere meinen Funk. In Ordnung. Also, wenn wir uns weitermachen wollen und Echo, dann ist das eigentlich mein Funk nennen, huh? Okay. In Ordnung. Also, wenn wir das tun wollten, sehen Sie werden
wir undefiniert. Variable, nicht definiert. Variable meine var hier. Warum ist es undefiniert? Weil dies im globalen Namensraum ist. Und das ist im lokalen Namensraum. Also, was Sie hier tun müssten und wenn Sie meinen PHP auf einem Kurs genommen haben, werden
Sie das wissen, aber gehen Sie global my var. Okay, was das sagt, ist, dass ich die globale Version meiner var innerhalb dieser Funktion verwenden möchte . ,
wir Wissen
Sie bekommen, was
wir wollen, wirbekommen keine Luft, bekommen keine Luft, und wir könnten das auf meine Messlatte setzen, die global ist. Und so bekommen wir, tatsächlich etwas Output, so dass wir global werden. Okay, also könnte dies gewesen sein, wie Ihr Code zuvor geschrieben wurde. Und Sie jetzt sind sie wie, OK, ich muss das in eine Klasse setzen, weil meine var im globalen Namensraum
alles meinen Var nennen könnte. Ich könnte eine andere Anwendung haben und es könnte Kollisionen geben, also nehme ich das einfach und lege es in eine Klasse. Aber ich will nicht, ich versuche nicht, das ganze trennende Allenby Modul zu machen. Ich will nur diese Methoden nehmen und ihn in eine Klasse bringen. Nun, das war generell, wie statisch verwendet wurde. Denn jetzt können Sie dies immer noch tun. Dies ist eine ähnliche Art von Einrichtung. Aber jetzt müssen Sie nur verwenden, anstatt globale und so Globalisierung mit Global zu verwenden, Sie müssen nur sicherstellen, dass Sie es statisch referenzieren, und Sie verwenden statisches Schlüsselwort für alles. Also statische Schlüsselwörter, Wurm oder verwendet, wenn Sie versuchen, dies zu tun, und eine wirklich mehr von einem nicht-objektorientierten ah Weg, und Sie wollten nur eine Art prozeduralen Code nehmen und es in eine Klasse einfügen. Also wurden Klassen mehr an den Namensraum gewöhnt, wenn Leute diese Art von Sache tun, ist der Punkt, den ich machen möchte. Ich bringe das auf, weil wir jetzt eine Axt, einen
tatsächlichen Namen,ein
Leerzeichen haben tatsächlichen Namen, , um einen Namensraum zu erstellen, und deshalb müssen wir das nicht mehr tun. Und wenn wir über objektorientierte Programmierung sprechen,
im Allgemeinen, wenn Sie statische Schlüsselwörter verwenden, die außerhalb des Objektkontexts liegen, ist
das während der Programmierung kein wirklich Objekt. Es ist nicht so, dass du nicht kannst, es ist etwas, das du nicht tun kannst, das du sicher kannst. Aber wenn Sie gehen, gehen Sie irgendwie die Objekt gemeinsame Route und brechen Dinge in Objekte und kapseln Ah und Polymorphismus und all die ausgefallenen Worte da draußen, die Leute benutzen. Wenn du diesen Weg gehen willst, brauchst
du das wirklich nicht oder willst. Es gibt nicht unbedingt eine Verwendung für statische Methoden oder Eigenschaften innerhalb dieses wahren Objekts oder im Kontext. Nun gibt es wahrscheinlich einige Vorbehalte,
aber ich würde sagen, dass es wahrscheinlich weniger ist, als Sie vielleicht denken. Und es ist normalerweise eine Situation, in der, wenn du das tun willst, entweder es einen besseren Weg gibt, es zu tun. Das ist mawr objektorientiert oder es ist ein genau wie ein extremes Beispiel für Ihr Problem könnte in das einmal in Ihrer Karriere
laufen. , Ich persönlich muss noch eine Situation finden,in der ich absolut eine statische,
variable,
statische Funktion für etwas verwenden musste variable, . Normalerweise konnte ich darüber nachdenken und tatsächlich einen besseren Weg finden erreichen, was ich wollte. Also decken wir ihn ab, weil das ein Teil dessen ist, was du hier und so weiter tun kannst. Aber es ist wieder. Es ist etwas, das ich nicht als veraltete ID bezeichnen würde. Aber es ist etwas, das definitiv nicht so viel verwendet wird, besonders mit der Einführung von Namensräumen in den neueren Versionen von PHP. Das heißt, das ist statisch, das statische Schlüsselwort, das statische Eigenschaften und statische Methode. Also, hoffentlich etwas daraus zu holen. Danke fürs Zuschauen. Wir reden mit dem nächsten.
7. Namespaces: Hallo, John Morris. Hier, John Morris, online dot com. Diese Lektion. Wir werden in den Namen Spaces zu bekommen, so dass wir Art von Referenz, dass ein wenig in dem vorherigen Video. Also möchte ich irgendwie alles in das hier so schnell gehen. Ich möchte Ihnen sagen, warum Sie vielleicht ein Namensfeld verwenden möchten. Die ganze Idee ist, dass hier runtergekommen ist. Sie können es mit arbeiten, wenn Sie etwas zusammenstellen, können
Sie mit mehreren Paketen arbeiten. Nehmen wir an, zum Beispiel, Sie arbeiten mit ah, Facebook sdk und einem YouTube STK. Und so werden Sie beide in Ihre Bewerbung bringen. Du wirst sie in deine Dateien einbinden und sie benutzen. Nun, sagen
wir, dass
beide aus irgendeinem Grund eine Datenbankklasse hatten. Nun, wenn wir keine Namensräume hatten und wir nur und diese Pakete diese Klasse hatten, die nur eine
Datenbank wie diese genannt wurde , wenn sie beide das hätten, würden
Sie auf ein Problem stoßen, bei dem Sie zwei Klassen haben, die versuchen, dasselbe zu deklarieren Namen und das würde auf Luft werfen, so dass das offensichtlich ein Problem wäre und so die Art und Weise, wie Leute in der
Vergangenheit damit umgehen, ist, dass sie wirklich beschreibenden Klassennamen verwenden würden, also könnten sie etwas wie YouTube sdk Datenbank wie das, und das ist in Ordnung. Und es funktioniert, aber das kann beginnen, ein bisschen umständlich zu werden. Wenn Sie beginnen, längere Klassennamen zu erhalten. Ich denke, Zen-Engine ist der Posterjunge für diese Art von Sache. Wenn man sich die Klassennamen und so anschaut, beginnen
sie ziemlich lang und gewunden zu werden. Und so war eines der Dinge, die geschaffen wurden, um damit umzugehen, ein Namensraum . Anstatt also so Präfix zu haben, das erste, was Sie tun können, und das wird auf Luft werfen, weil Sie den Namensraum oben in
der Datei deklarieren müssen . Aber wir werden
zum Beispiel nur willen, dass wir so tun, als wäre dies die Spitze der Datei. Aber Sie würden so etwas wie YouTube tun und dann s d k so. Und was das tun wird, ist, dass ein Namensraum erstellt wird, den Sie jetzt alle Ihre, äh, Ihre Klassen in und sie werden nicht mit anderen Klassen kollidieren, die zufällig in einem anderen Namen sind. Weltraum. Dadurch entsteht ein neuer, ganz neuer Name, Leerzeichen. Alles unter diesem Namen, Space Declaration. Wenn wir also eine Datenbank wie diese machen, existiert
alles auf Lee innerhalb dieses Namensraums und befindet sich nicht mehr im globalen Namensraum . Also, wenn Facebook kam und sagte Name Space uh, Facebook Flash SDK Und sie haben Klassendatenbank diese beiden Deklarationen der Klassendatenbank , obwohl ihre gleichen nicht kollidieren würde, weil diese in diesem Namensraum ist, und dieser ist in diesem Namensraum. Das ist also die ganze Idee. Es z Art wie Pre-Fixierung, aber es in einer mehr oder weniger gewundenen Weise zu tun. Okay, also lass es uns reden. Lassen Sie uns dann irgendwie die Nuance durchgehen, wie das alles funktioniert. Also, zuerst, habe ich etwas von diesem Code geschrieben, nur weil es einen gibt, gibt es eine bestimmte Menge davon und so schickte mich zu beobachten, wie ich alles tippe, was unnötig lange sein würde. Also habe ich zwei Dateien erstellt. Einer ist lib one dot PHP, und einer ist lib to dot PHP. Sie sehen an der Spitze von beiden und wieder. Der Namensraum muss oben in der Datei deklariert werden. Wir haben App und dann haben wir Schrägstrich lib eins und wir haben App und dann Schrägstrich Lib zu dem
, was das tut, ist jede dieser Dateien in ihren eigenen Namensraum zu setzen. Also jetzt meine Klasse und ich können Sie wirklich wissen, Sie können Ah! Ah, Sie könnten die den gleichen Klassennamen haben. Das könnten die meisten beiden mein Klassenname sein, aber ich möchte Ihnen nur
einige der Unterschiede hier zeigen aber ich möchte Ihnen nur
einige der Unterschiede hier zeigen. Jedenfalls gab
ich ihnen verschiedene Klassennamen und diese Klassen sind das, mit dem wir gearbeitet haben. Hier ist nichts mehr drin. Alles, was wir taten, war, diesen Namensraum ganz oben hinzuzufügen. Also, jetzt setzt dies diese in ihre eigene separate Namensspace-App, Schrägstrich live. Möchten Sie auch eine App Schrägstrich lib. Wenn wir hier rüber kommen,
dann ist das erste, was ich tue, diese beiden Akten zu verlangen. Wenn wir hier rüber kommen, Und jetzt verwenden wir dieses Schlüsselwort verwenden, um ah, Referenz sind Lib eins und meine Klasse sind gelebt zwei und Ihre Klasse und Sie können hier sehen. Ich benutze Heu und hier benutze ich High und wir können hier drüben sehen ich Heu hoch als mein Ausgang . So können Sie damit im Wesentlichen beginnen, Ihre gesamte Anwendung in
Namensräume zu kapseln . Und dann ist es von jeder anderen Anwendung getrennt, und dann müssen Sie keine wirklich verschlundenen Klassennamen erstellen. Das erste, was Sie tun, ist, dass Sie was an die Spitze Ihrer eigentlichen Klassendateien setzen, Sie werden einen Namensraum setzen und einen Namensraum definieren. Und wenn Sie diese Klassen verwenden möchten, haben Sie das Schlüsselwort use verwendet und Sie referenzieren App live auf und Ihre Klasse Apple lebte zwei und Ihre Klasse. Jetzt gibt es einen anderen Weg, wie Sie dies tun können, wenn wir ah, gehen Sie voran und kommentieren diese aus, wenn Sie eine neue Instanz der Klasse essen, Sie können es auch speziell referenzieren, so dass Sie App tun können und dann können Sie live eine leben Juan, und dann könnte man hap slash lib liken Typ lib tun, auch. So, so dass Sie Zugang waren. Es gab Referenzen, die es speziell erwähnt haben, wenn wir eine Instanz dieser Klasse essen. Also haben wir darauf verwiesen. Sie können sehen, dass das funktioniert. Und um Ihnen zu zeigen, was passiert, wenn wir das nicht tun, gehen Sie vor und werden Sie loswerden, und werden nicht ungewöhnlich, wenn Sie tödliche
Luftklasse bekommen , meine Klasse nicht gefunden. Und es ist eine nicht gefundene Luft, denn wenn wir den Namensraum schaffen, nehmen
wir ihn aus dem globalen Namensraum. Die Klassendeklaration existiert also buchstäblich nicht mehr im globalen Namensraum. Und deshalb bekommst du diese nicht gefundene Luft. Okay, also nochmal, das ist, wie man Namensräume erstellt und Namensräume benutzt und sie dann wieder benutzt. Kapsele deine APS jetzt, eine andere Sache, die du tun könntest, die ich dir zeigen möchte, dass etwas praktisch schwächer ist. Wir können dies auch als Schlüsselwort verwenden, damit wir Apple Iban meine Klasse verwenden können, wie wir einfach J
und ah sagen , lassen Sie uns das auf als m verwenden. Okay,
Also, wenn wir jetzt hier runter kommen, diese Luft genannt Aliase. Also haben wir jetzt geändert, wie wir diese Dinge referenzieren können. Wenn wir das neu laden, können
Sie sehen, dass ich meine erwartete Ausgabe bekomme und ich rufe neues J auf. Ich habe nie eine Klasse namens J deklariert. Ich habe nie eine Klasse namens em deklariert. Aber was ich getan habe, ist, dass ich sagte, diese Klasse
verwenden, da Jay diese Klasse durch alle Namensräume als M verwendet Also habe ich einen Alias vier meiner Klassen erstellt. Und jetzt kann ich anrufen, ich kann acht neue J neue M instanzieren und das funktioniert. Okay, sind
also Aliase, die Sie auch verwenden können. Das ist also eine andere Sache, die Sie sehen können, dort draußen zu sehen, und Sie könnten auch praktisch finden. Also nochmal, wenn es darum geht, wie man tatsächlich geht, ah, Organisation Ihrer Bewerbungen und so weiter, weißt
du, oft bekomme ich Leute, die so sind, Sag mir einfach, wie man es organisiert, und die Realität ist, dass ist, wo du bist, weißt du, das ist, wo du bist Art von Kreativität bist, als ein Entwickler Art kommt ins Spiel. Jetzt werde ich am Ende dieses Kurses einen M V C Primer machen, und ich werde einen Teil davon versichern. Wir werden uns ein paar existierende Pakete ansehen, die da draußen sind. So können Sie eine Vorstellung davon bekommen, wie sie organisiert sind, aber es gibt alle Arten von Designmustern, die da draußen sind. NBC ist nicht die einzige, und am Ende des Tages ist
es Ihre Anwendung, so dass Sie es irgendwie organisieren können,
wie Sie es wieder wollen. Es gibt eine Art von Best Practices und Konventionen und einfach Art und Weise, wie die Leute es in der Vergangenheit
getan haben . Aber ein Teil dessen, was Sie tun, ist die Entwickler kreativ zu sein ,
Probleme auf einzigartige Weise zu
lösen , Ihre eigenen Ideen zu entwickeln und so weiter. Und so haben Sie keine Angst, damit zu experimentieren. Offensichtlich, werfen Sie einen Blick auf andere Pakete, wenn Sie eine Anleitung wollen. Aber hoffentlich
wissen
Sie jetzt , was Sie sehen. Und ich denke, das ist das Größte. Wenn Sie in diese anderen Pakete gehen und Sie einige von diesem Zeug sehen und Sie nicht wissen was es ist, kann
es wirklich verwirrend wirklich schnell werden. Aber hoffentlich jetzt,
wenn Sie wissen, wie die Namensräume funktionieren und so weiter, können
Sie hineingehen und gehen, Oh, ich weiß, was das ist, und Sie können anfangen, zusammenzustellen, wie sie die Dinge setzen. Wie ihre ah, Organisation und so weiter, und das kann Ihnen Ideen geben. Das ist also mein Ziel. Jedenfalls 40. Also nochmal, das ist der Name Spaces. Hoffentlich. Ah, da
hast du etwas raus. Danke fürs Zuschauen. Wir reden mit dem nächsten.
8. Autoload: Hey, da. John Morrissey, John Morris online dot com. Diese Lektion. Wir werden jetzt in das automatische Laden kommen. Automatisches Laden ist nicht notwendigerweise ein striktes Objekt während einer Programmierung. Aber als wir anfangen, über Bauklassen zu sprechen und wir anfangen,
Namensräume zu verwenden und so weiter Ah, denke
ich, dass es wichtig wird, über Auto-Load zu sprechen. Und der Grund, warum wir uns hier oben auf diese beiden Zeilen konzentrieren. Und Sie haben vielleicht ich mit Anwendungen gearbeitet, die genug für Code genug sind, um zu wissen, dass Sie nach einer Weile anfangen, mit vielen davon umzugehen. Und ich weiß, ich mache Tutorials, in denen ich darüber rede,
ah , lade Datei und diese Art von einer Art, damit umzugehen, und das funktioniert gut, wenn Sie mit etwas arbeiten, das eher ist, Äh, auf einem werden einige Leute hier Blast für mich schreien. Aber wenn Sie mit etwas arbeiten, das vorne und schwer ist Also wo ah viel von Ihrem Code, wenn wir darüber sprechen würden, sagen wir, M v c weise ist eine Menge Ihrer Codas sehen schwer, und es ist nicht unbedingt so viel Sachen auf dem hinteren Ende. Während, ah, was wir mit Auto Load sprechen werden, dazu neigt, viel besser zu funktionieren, wenn Sie eine Menge von verschiedenen Klassen haben, in denen Sie eine Reihe
von verschiedenen Namensräumen laden müssen und du hast eine Menge von diesem Zeug los. Und so ist die Idee der automatischen Ladung, uns zu helfen, irgendwie loszuwerden, diese Anforderungen zu verwenden und haben, wie, 15 von ihnen. Wenn wir wieder so viele Klassen haben, beginnt
das wirklich,
ah,
ein Problem zu werden ah, , wenn Sie einzelne Objekte brechen. Ah, Objektbehandlungscode in Klassen. Und dann, wenn Sie wieder, fangen
wir an, über NBC zu sprechen. Sie beginnen, über mehrere Klassen für ein Objekt zu sprechen, weil
Sie
Ansichten haben Sie und Sie das Modell haben und Sie den Controller und all diese Art von Sache haben. Sie fangen also an, viele Klassen und viele Dateien zu erhalten, die Sie laden müssen. kann also umständlich sein, dass alle diese Anforderungsaussagen ständig fallen. Das werden wir also zeigen, wie man hier umgeht? Ah, ich habe eine neue Datei erstellt. Wird einfach all diesen Code kopieren, wird dies in fallen. Und natürlich, wie Sie es erwarten würden, wenn ich diese Anforderungen loswerde, werden wir diese Lüfte bekommen. Nun, ich möchte, dass Sie auf diese Luft achten, weil ah, was PHP irgendwie versucht zu tun, ist ah, wenn wir gehen, um das automatische Laden Zeug zu machen, das davon basiert, ist der Klassenname . Okay, das ist etwas. Ich möchte, dass Sie wirklich auf seine App Slash lib ein Schrägstrich meine Klasse achten. Das ist der eigentliche Name der Klasse. Also, wenn wir in Sie bekommen können ah ah ah Funktion namens SPL Auto Load Register wird hier
kommen, um sich zu registrieren. So nimmt SPL Lotto Auto Load registriert eine Callback-Funktion. Also sagen wir einfach, um uns willen, wir gehen. Automatisches Laden. Okay, um es einfach zu halten. Ähm, jetzt wird diese Funktion irgendwie in diesem Ah sein. Oftmals in diesem globalen Namensraum wie dieser. Also, ah, äh, es mit automatischer Ladung so,
ist vielleicht nicht das Beste, was zu tun ist. Vielleicht möchten Sie hier über einen anderen Namen nachdenken, aber für unsere Zwecke kann
ich es Ihnen dieses Jahr zeigen. Und was ich dort gemacht habe, ist, dass ich nur in dieser Angewohnheit bin, das zu tun. Dies ist keine Zyste für eine neue Funktion, die wir erstellen. Was wir tun, ist dies eine PHP-Funktion aufrufen, und wir übergeben einen Namen einer Funktion, die wir verwenden möchten, ist ein Callback. So SPL Auto Load Register wird nur diese Callback-Funktion aufrufen. Also werden wir eine Funktion namens Auto Load und viele Frameworks erstellen. Sie werden sehen, dass sie dies in, es ist eine Art eigene separate Datei und so weiter. Ah, und so wissen Sie, die Art, wie ich hier nur die Spitze einer Datei wie diese mache, ist nicht unbedingt die Art , wie Sie das tun würden. Sie würden dies normalerweise in eine Art eigener Datei einfügen und dann in
Ihre Basisdateien einfügen, um mit oder ah zu beginnen, irgendwie in Ihrer Anwendung enthalten. Also ah, aber nochmal, ich zeige es Ihnen irgendwie auf einfache Weise hier. Also wieder, SPL Lot von Auto Load Register wird die Callback Auto Load ausführen. Und was es übergibt, ist der Klassenname. Deshalb ist dies wichtig, weil es im Klassenzimmer passieren wird. Denken Sie daran, dass der Klassenname dieser vollständige Name hier ist. Und es hat die hinteren Schrägstriche wie diese, die nicht die Vorwärtsstriche. Also, wenn wir was versuchten? Was Sie wahrscheinlich versuchen würden, direkt aus der Fledermaus zu tun, ist einfach etwas wie einmal erfordern . Und dann, ähm Klasse, nennen Sie Gott, PHP. So etwas wie das. Das ist eine ziemlich Standardsache, die ich denke, viele Leute würden nur sagen, Hey, wissen
Sie, wir werden setzen und dann würden Sie Dateien wie diese App erstellen lib Juan lebte, wie ich hier drüben
getan habe . Also haben wir App-liberal in den beiden, und Sie würden sagen, OK, ich bin gut zu gehen, aber oder vielleicht werden Sie nicht einmal denken, diese Dateien so zu erstellen, ? Vielleicht ist das, weißt
du, vielleicht ist das die Sache. Was Sie bemerken, ist, dass es nicht öffnen wird, und der Grund, warum es nicht geöffnet wird, ist wegen dieser. Slash ist genau hier. Also müssen wir sicherstellen, dass wir String ersetzen, und wir müssen uns ändern. Wir müssen Teoh die in die richtigen Schrägstriche umwandeln. Also werden wir im Wesentlichen tun, wonach wir suchen werden, ist, dass wir nach
diesen Schrägstrichen suchen . Nun, die Sache daran ist, wenn Sie das einfach tun, werden
Sie feststellen, dass es unseren Code alles wackelig macht. Und das liegt daran, dass ein umgekehrter Schrägstrich auch in Escape-Zeichen ist. Es entkommt also diesem letzten Zitat genau hier. Eso, wir brauchen, dass tatsächlich zwei so reinlegen, was sicherstellt, dass wir nicht das
Escape-Problem haben , und dann werden wir es durch einen tatsächlichen Schrägstrich ersetzen, was wir brauchen. Okay, also wenn wir das jetzt neu laden, bekommen wir erwartete Ausgabe, okay? Und was hier passiert, ist, wenn wir sagen, Hey, wir wollen Apfel liberal in meiner Klasse benutzen. Was PHP macht? Ist es das? Es sucht nach denen. Es sucht nach dieser Bezeichnung in den Dateien, die es zur Verfügung hat, die
geladen wurden . Nun, offensichtlich, wenn wir diese nicht benötigen, dann wird es sie nicht finden, weil wir
diese Dateien nicht benötigt haben . Was es also tut, macht
es einen letzten Versuch, im Wesentlichen diese Dateien zu finden, und es wird versuchen, sie automatisch zu laden. Und so ist dies, wo wir in diesem Auto SPL Auto Load hinzufügen können, registriert diese Callback-Funktion, um es zu sagen, es zu helfen und ihm zu sagen, wo zu suchen. Und so sagen wir es im Wesentlichen, weil der Name der Klassen ab Slash liberal und Schrägstrich meine Klasse, was wir
damit machen . Aber diese Funktion hier, sagten
Auto-Loader,
waren zuerst aus, um die hinteren Schrägstriche in Schrägstriche zu ändern. Und jetzt sagen wir es,
Hey, Hey, suchen Sie nach dieser Klasse in App Slash lib ein Schrägstrich meine Klasse dot PHP und suchen oder suchen Sie es in lib. Ah, ap lebte zu ah, Ihre Klasse Dot PHP Das ist, wo wir wollen, dass Sie nach diesem suchen. Also sagen wir jetzt, wo wir damit suchen sollen, das ist wichtig, denn okay, vielleicht willst du das nicht. Sie wollen keine App verwenden und so leben. Vielleicht willst du so etwas tun, wie wir gehen. Ah, lassen Sie uns Teile gleich explodieren und wir werden wieder unsere Rückspritzer machen, weil wir durch diese Schrägstriche
explodieren müssen , und wir werden Klassennamen verwenden. Und wir wissen als Ergebnis davon, dass das letzte Element, das wir wissen, wonach wir suchen. Nun, das ist ein wenig schwierig, weil Sie davon ausgehen, dass sie alle die gleiche Struktur haben. Und Sie haben vielleicht Bezeichnungen wie diese, die wie, ähm kein anderes Sprichwort, ich weiß nicht, was das sein könnte. Du könntest so vier haben. Okay, also musst du ein bisschen vorsichtig sein, aber du kannstso
etwas wie
Ray Pop gebrauchen so
etwas wie also musst du ein bisschen vorsichtig sein,
aber du kannstso
etwas wie
Ray Pop gebrauchen. Ich glaube, es ist, dass das letzte Element eines Arrays abspringt. Also ah, und es wird zurückgeben, dass der letzte Wert des Arrays, wie es Parameter zurückgegeben wird, so
können wir ah benannte den tatsächlichen direkten Namen gleich, Ah, Array, Top und Teile. Okay, lasst uns das einfach , wiederholen und sicherstellen,dass wir bekommen, was wir suchen. Na gut, also gehen wir weiter und machen das. Also, jetzt bekommen wir meine Klasse. Das ist also einer von denen, die so wieder für jeden von ihnen her waren, dass es versucht zu laden. Es wird das laufen, weil es es es nicht findet. Also wird es es für diesen einen laufen und es dann für diesen einen laufen lassen. Also, jetzt haben wir meine Klasse gekapselt. Und selbst wenn wir hier so andere gemacht haben, wir immer noch meine Klasse bekommen, weil wir einen Ray Pop benutzen. Nun, da wir den direkten Klassennamen haben, könnten
wir einen Ordner wie diesen erstellen Das ist, Ah, neuer Ordner und wir könnten Klassen machen. Und wir könnten alle unsere Klassen hier reinbringen, und dann könnten wir das so konstruieren, dass es danach sucht, damit wir es tun können, äh, lasst uns das Rätsel machen und wir könnten vielleicht etwas tun wie, ähm, lasst uns ein sprint f machen es hier ein bisschen einfacher. Sprint f. Und das Format wird Ah sein, wir werden es in Klassen suchen und dann Schrägstrich und dann Prozentsatz s und dann Punkt PHP. Okay, das sollte funktionieren. Und so werden wir tun Namen in ihre setzen. Also, was Sprint Hälfte macht? Wäre es dieser Prozentsatz s Es wird den Wert des Namens nehmen und ihn in ihre Okay fallen lassen , also ist es nur ein bisschen sauberer Weg, dies zu tun. Ich muss vielleicht ein paar Schrägstriche und so hinzufügen, aber mal sehen, was wir bekommen. Ähm, nein, ich habe mein Echo und verlasse hier oben noch. Ich meine, es muss vielleicht ein paar Schrägstriche hinzufügen, aber lass uns einfach gehen und sehen. Ja, also lasst uns ah, nun, und eigentlich haben
wir nicht meine Klasse da drüben, also lasst uns das machen. Lasst uns Ah machen, kopieren. Und dann fügen wir das hier ein und dann machen wir Ihre Klasse. Lassen Sie uns das kopieren und einfügen und ich werde das alles hier in nur einer Sekunde erreichen. In Ordnung, also da, jetzt gehen wir. Wir haben es richtig. Also haben wir es getan. Wir haben gerade zwei verschiedene Arten des automatischen Ladens gemacht. Wir haben es dort gemacht, wo wir App erstellen und eine so gelebt haben, was Sie vielleicht sehen, einige Leute tun, oder wir haben es getan, wo wir alle unsere Klassen in einen Ordner gelegt haben und egal wo sie wissen, wo sie genannt werden von, Egal, Sie wissen, wie viele verschiedene Ebenen wir hier haben. Letztendlich wird
diese automatische Ladefunktion nach unseren Klassen innerhalb dieser Klasse suchen ist Ordner, und wenn es einen gibt, wird
es ihn laden. Okay, also zeige ich Ihnen all das, um darauf hinzuweisen, dass, wenn Sie da draußen gehen und sich verschiedene
Anwendungen ansehen , Sie verschiedene Möglichkeiten sehen werden, wie Leute Dinge automatisch laden können. Und Sie könnten anfangen zu denken, das ist der einzige Weg, wie Sie es tun können oder was auch immer. Aber diese automatische Ladung Ah, Funktion. Dieses Register ermöglicht es Ihnen, eine Callback-Funktion aufzurufen, gibt Ihnen den Klassennamen, und dann können Sie es analysieren und behandeln, wie Sie möchten. Und so können Sie Ihre Struktur auf eine bestimmte Weise erstellen. Dass das für dich Sinn macht. So können Sie Ihren Vater Ihre Bewerbung organisieren, wie Sie wollen. Und das Schöne daran
ist, dass wir
17 davongebrauchen könnten dass wir
17 davon . Ah, diese benutzen hier Bezeichnungen, und wir könnten 17 verschiedene Klassen haben. Und solange Sie das automatische Laden schreiben, stellen
Sie sicher, dass Sie Ihre Dateien auf diese bestimmte Weise so organisieren, dass es funktioniert, dann wird es Ihnen gut gehen. Und wieder, das wird ein bisschen sein, wenn wir in Ah kommen,
wenn wir anfangen, NBC zu betrachten und wir werden uns einige von diesem Zeug ansehen, werden
Sie einige Auto-Load-Funktionen sehen, die eine Menge von Sie haben einige, wenn Blöcke sie sind viel komplizierter als das. Und das ist in Ordnung. Und das funktioniert in tatsächlich ziemlich gut in diesen Szenarien und so weiter. Aber ich möchte Ihnen das zeigen, damit Sie ein grundlegendes Verständnis dafür haben, was tatsächlich dort
passiert und Sie wissen lassen, dass Sie Ihre automatische Last irgendwie schreiben können, wie Sie wollen. Und es ist ein wirklich praktisches Werkzeug, wenn Sie viele Klassen haben, die Sie laden müssen anstatt 17 erfordern Blöcke an der Spitze zu setzen, können
Sie eine automatische Ladung wie folgt verwenden, und Sie können if-Anweisungen hier und so weiter verwenden. Und vielleicht würdest du es auch tun. Die Art, wie Sie es organisieren, ist, dass Sie tatsächlich überprüfen würden. Du machst, dass du explodierst. Aber du würdest das erste Element davon abholen, richtig? Sie würden diesen App-Teil greifen, und Sie würden sagen, OK, wenn seine App Ich werde suchen, ich möchte, dass Sie in diesem Ordner nach ihm suchen, und Sie könnten eine if-Anweisung haben, die behandelt, wenn das erste Element dieser Bezeichnung ist App und lassen Sie uns sagen, vielleicht ist es ich weiß nicht,
vielleicht haben Sie, ah, YouTube, YouTube, STK oder so was und Sie wollen YouTube verwenden oder Sie haben einen YouTube-Rapper. Und wenn es YouTube ist, werde
ich woanders suchen. Oder wenn es so ist, gibt es alle möglichen Möglichkeiten, das zu organisieren. Aber auch hier möchte
ich, dass Sie wissen, dass Sie diese Funktion so schreiben können, wie Sie wollen, damit Sie
Ihre Anwendung organisieren können , wie Sie wollen und trotzdem davon profitieren können. Das ist also Auto-Load. Hoffentlich holen Sie etwas aus dem. Danke fürs Zuschauen. Nächstes Mal reden wir mit dir.
9. Schnittstellen: Hey, John Morris Hier, Joe Morris online dot com. Diese Lektion. Wir werden über Schnittstellen sprechen, also sind Schnittstellen eine Möglichkeit, was sie tun, ist, dass sie Ihnen erlauben, Art des
Frameworks anzugeben , das eine Klasse insbesondere implementieren muss, was sie tut, ist es Ihnen die Methoden, die eine Klasse haben, wenn es umsetzen wird. Ah, dein Interface. Und das ist praktisch für eine Reihe von Situationen. zum Beispiel an, Nehmen wirzum Beispiel an,Sie wollen nur Sie als individueller Coder sein, der Sachen schreibt. Du willst mehr organisiert sein und dich irgendwie auf dem richtigen Weg halten und so weiter. Und was Sie tun können, ist, wenn Sie es sind, bauen
Sie eine Art von der Idee auf, was Sie wollen, dass Ihre Anwendung sein wird, und bekommen eine Art von Ideen und Konzepten nach unten und Funktionalität. Sie können verschiedene Schnittstellen erstellen, die OK sagen, ich weiß, dass diese Schnittstelle dazu benötigt, dass diese Siris von Klassen Art Datenmanipulation durchführen
müssen, also werden sie Dinge in der Datenbank speichern Arbeiten mit der Datenbank, so dass ich weiß, dass ich eine erstellen müssen eine lesen und aktualisieren und löschen, so dass Sie eine Schnittstelle
schreiben könnten , die sagt, Okay, ich muss. Für jede der Klassen, die diese Schnittstelle implementiert, müssen
sie mindestens sicherstellen, dass
sie ein Cree Cree Lesen und Aktualisieren und Löschen haben. Und dann, wenn Sie die Klasse schreiben und die Schnittstelle implementieren, wenn Sie diese Methoden nicht drin haben, dann wird es eine Luft werfen und Sie werden so sein, Oh, ja, ich muss das tun Also Das ist eine Instanz wahrscheinlich eine populärere oder realistische Instanz ist Angenommen, Sie sind der Senior Developer in einer Art von Organisation und Sie werden beauftragt Sie und Ihre Junior Entwickler. Vielleicht haben Sie die letzten fünf oder zehn davon. Sie haben die Aufgabe, eine Art neuer Anwendung zu erstellen. Und so, als Senior Entwickler, möchten
Sie eine Art von Führungsschienen für Ihre Entwickler und stellen Sie sicher, dass ihre ah, sie schreiben die notwendigen Dinge, die Sie für die Anwendung benötigen, so dass Sie sich hinsetzen und schreiben Sie eine Reihe von Schnittstellen und legen Sie den grundlegenden Rahmen dessen, was der Code tun muss, ohne den Code tatsächlich ausfüllen und schreiben zu müssen. Und dann müssen Ihre Nachwuchsentwickler das tun. Wenn sie eine bestimmte Art von Klasse schreiben, müssen
sie sicherstellen, dass sie eine bestimmte Art von Schnittstelle Ah implementieren, damit sie funktioniert. Und das gibt Ihnen ein Szenario, in dem
Sie
als Senior Developer des Projektmanagers die Entwicklung irgendwie leiten und ein Framework für die Entwicklung einrichten können, aber nicht wirklich den individuellen Code für jede Klasse schreiben müssen. Und so ist das, was eine Schnittstelle tut. Um eine Schnittstelle zu erstellen, haben Sie nur die Schlüsselwort-Schnittstelle anstelle der Schlüsselwort-Klasse verwendet. Und dann geben Sie Ihrer Schnittstelle einen Namen. Sie haben Ihre geschweiften Klammern, in denen es sich befindet und dann innerhalb davon. Alles, was Sie tun, ist die Methoden anzugeben, die diese Schnittstelle enthalten muss, so können wir sehen, dass wir öffentliche Funktion tun, und dann haben wir einen Namen tun, und wir haben öffentliche Funktion und eine benannte tun andere Sache. Sie legen keine Daten innerhalb der Methode ab. Es lässt Sie nicht, es wird Sie ihre bekommen, wenn Sie versuchen, Daten innerhalb dieser Methoden das
ganze Jahr über zu setzen , die Namen der Methoden
angeben, die in jeder Klasse die Implementierungen existieren müssen, diese Schnittstelle und so können Sie hier unten sehen, als wir Wenn wir die Schnittstelle implementieren wollen , sagen
wir Klasse meine Klasse statt erweitert. Als wir eine Eltern- und Kind-Klassen verwendet
haben, tun wir Implementierungen. Und dann sagen wir meine Schnittstelle, wenn wir das tun, was das dann sagt, ist jetzt, dass wir in dieser Klasse sicherstellen müssen, dass wir eine Methode namens do thing und namens Do Other thing haben. Und wenn wir das aktualisieren, sehen
Sie, dass wir hier keine Ausgabe bekommen, weil meine Ausgabe, irgendetwas. Aber wenn ich hier reinkomme und lasst uns diese letzten beiden Methoden auskommentieren, also habe ich jetzt etwas tun, aber ich habe keine anderen Dinge zu tun, und wenn wir wieder hierher kommen, bekomme
ich eine tödliche Luftklasse. Meine Klasse enthält eine abstrakte Methode und muss daher abstrakt deklariert werden oder
die restlichen Methoden implementieren , und dann teilt sie Ihnen die Methode mit, die sie implementieren muss. Also wieder, wenn Sie in einer Organisation sind und Sie der Senior Developer sind und Sie haben eine Reihe von Entwicklern, die für Sie arbeiten, und Sie sagen, dass Sie zu ihnen gehen und sagen, OK, ich habe alle Schnittstellen implementiert. Hier sind die Schnittstellen, die Sie dafür und dies verwenden müssen. Und sie sagen, und sie gehen dort zu ihrem Code. Die Guy-Klasse implementiert meine Schnittstelle und dann schreiben sie, sie versuchen, die Seite zu laden, Sie werden sehen. Oh, Sie müssen diese implementieren, die Sie diese implementieren müssen, müssen Sie diese implementieren, wie sie ah haben, Führungsschiene von Dies sind die Dinge, die ich vervollständigen muss. Und so können sie dann durchgehen und sie vervollständigen. Und wenn sie gehen, um Ihnen ihren Code als Senior Developer zu zeigen, wenn sie nicht angewiesen haben, hat
ah eine der erforderlichen Methoden erstellt. Du wirst es gleich sehen. Du wirst es sehen. Sie können versuchen, es zu laden, und es wird sagen, Hey, diese Methode existiert nicht wieder und gibt Ihnen eine gewisse Kontrolle und eine Anleitung in Bezug auf den allgemeinen Rahmen dessen, was Sie bauen. Nun, wenn wir hier runter kommen, natürlich kommentieren Willen diesen und Sie können sehen, jetzt bekommen wir keine Ausgabe, weil wir beide
Methoden definiert haben . Die andere Sache ist, es sind nicht nur diese beiden Methoden, die Sie implementieren müssen, oder Sie müssen die für alle Methoden erstellen, die in Ihrem Gesicht angegeben sind, aber Sie können Ihre eigenen Methoden hinzufügen. Also, jetzt haben wir eine 1/3-Methode hier, die nicht in der Schnittstelle skizziert wurde. Aber Sie können sehen, dass wir immer noch keine Fehler bekommen oder einfach nur in Ordnung mit dieser Art von Sache. Also wieder, dies ist Dies erstellt eine Schnittstelle, mit der Sie eine gewisse Kontrolle über eine Struktur
über die Klassen erhalten können, die Sie erstellen. Ähm, und das kann auf verschiedene Arten verwendet werden, egal ob du persönlich bist oder in einem Team arbeitest und so weiter. Das ist also, was Schnittstellen sind. Das ist, was Deshalb Ah, das wird es für diese Lektion tun. Danke fürs Zuschauen. Wir nehmen uns das nächste Mal
10. MVC Primer: Hey, da. John Morrissey, John Morris online dot com. Diese Lektion wird eine Grundierung auf M V. C. Jetzt möchte ich sicherstellen, dass ich
klar bin, was ich mit Primer meine und was wir hier reden werden. So Primer ist so konzipiert, eine Art Top-Level-Ansicht Überblick über Konzepte zu sein. Also werden wir damit keinen Code schreiben. Nicht Ah,weißt
du, weißt
du in unseren Redakteur zu
gehen und all das Zeug rauszulegen, das wird ein Überblick über
Konzepte sein . Und ich habe das aufgenommen, obwohl es nicht wirklich notwendig ist. Es ist nicht wirklich 100% objektorientierte Programmierung. Ich denke, ah, dass viele Leute, wenn sie an objektorientierte Programmierung denken, letztlich irgendwie auf eine Art Designmuster drängen, weil letztendlich Objekt oder jede Programmierung zum Erstellen von Anwendungen. Und so ist NBC ein wirklich beliebtes Designmuster, aber es ist nicht das einzige Designmuster. Ah, das ist da draußen. Und wirklich, wenn Sie NBC in der Tiefe lernen möchten, ist
das Ihr Designmuster, als Sie einen M V C spezifischen
Kurs in Betracht ziehen würden , weil es groß genug ist von einem Thema, dass es seine eigene Art rechtfertigt. Natürlich. Also möchte ich Ihnen einen Primer in einem Überblick über die hochrangigen Konzepte geben, so dass Sie M. V c verstehen und verstehen, dass es eines der vielen der Designmuster ist, die
da draußen sind . Aber es ist auch ein sehr beliebtes, und so können wir über einige Dinge reden, die damit passiert. Die andere Sache Art von Grab oder Art von Vorbehalte. Eins. Ich werde auf diesen Artikel hier vor Ort Punkt verweisen und ich wollte tatsächlich
hierher kommen und Ihnen das zeigen,
weil A und ich auf
diesen Artikel verweisen werden ,
uh,
wo immer ich kann , uh, Bedingungen, wo Sie zufällig diesen Kurs betrachten. Aber ich werde auf diesen Artikel verlinken, damit Sie ihn sehen können. Aber es gibt zwei Dinge an diesem Artikel, den ich wirklich verwenden wollte. Ah, ich mag dieses Bild hier wirklich, und ich wollte nicht einfach das Bild streichen, also wollte ich dir zeigen, wo ich es tatsächlich habe. von. Wir werden darüber reden, während wir das durchmachen. Die andere Sache ist das. Dieser Artikel macht ein Argument, dem ich zufällig zustimmen, wenn es um NBC geht. Und das Argument ist, dass viele der Frameworks, die Sie heute sehen werden, wenn Sie
ausgehen und Sie sehen,
ah, ah, die verschiedenen Frameworks oder Leute, die das NBC-Muster heute verwenden, eine Menge von dem, was Sie finden ist eine Art eine alternative Verwendung von dem, was NBC tatsächlich ist . Und da dieser Artikel den Punkt macht, ist
es nicht wirklich wahr. M. V C. Und wir werden speziell darüber sprechen, warum diese ISS und so und das macht es nicht falsch. Ah, was passiert ist, ist, dass Leute ihre eigene Art von Designmuster entwickelt haben. Aber es ist wichtig zu verstehen, dass das, was Sie da draußen von vielen Frameworks sehen, wirklich ein anderes Designmuster ist, das ähnliche Ideen implementiert, aber auf eine andere Weise. Und wenn wir also wirklich über reine Art von wahrem M v C sprechen wollen, möchte
ich sicherstellen, dass Sie verstehen, was das ist. Das heißt nicht, dass Sie nicht tun können, was diese anderen Frameworks Luft tun, und dann müssen Sie es so machen, oder es ist besser. Das bei der anderen. Ich möchte nur darauf hinweisen, dass es einen Unterschied zwischen den beiden gibt, also weißt du, was das ist? In Ordnung. Also was? Das heißt, lasst uns in das, was das ist ein wenig. So steht NBC für Model View-Controller. Die ganze Idee ist die Trennung von Geschäftslogik und Art von Datenmanagement und, wie die Back-End-Art von Sachen mit Art von Front und Display Art von Dingen. Und wenn Sie jemals irgendeine Art von Anwendung erstellt haben, wissen
Sie, dass es gibt. Es kann diese Art von Verwirrungen zwischen den beiden geben, und es gibt nur einen Punkt in der Anwendung. Wenn Sie nicht diese Art von NBC-Framework oder irgendeine Art von Design dicker und entwickelt dies
zu behandeln, immer ein Punkt in der Anwendung, wo Sie sich wie ein Teil davon fühlen, ist irgendwie schmutzig. Und es ist, als wäre das irgendwie Ah, hacken Sie sich herum und es fühlt sich nicht super sauber an. Und was NBC tut, ist, dass es versucht, diese Art von Sache anzugehen, um Ihnen Art
von Prinzipien und Regeln zu geben , die Sie befolgen können, um Ihre Anwendungen wirklich
sauber,
wirklich modular und so weiter zu halten sauber, . Also was nochmal, was? NBC steht für seinen Model View-Controller. Also diese Luft die drei Komponenten und Sie werden sehen, wie wir, äh, auf unserem Bild hier. Dies hängt alles mit dieser impliziten Idee des Benutzers zusammen. Also spreche ich manchmal über diesen impliziten Benutzer. Ah, das ist Es wird immer angenommen, dass es eine Benutzerart im Hintergrund gibt, die unsere
Anwendung verwendet . Und so ist der Controller, letztlich Ah, eigentlich, letztlich Ah,
eigentlich,
wahrscheinlich besser, wenn wir anfangen, zuerst über das Modell zu sprechen. Das Modell ist also das, was wir für unsere Art der langfristigen Speicherung von Daten verwenden. Damit ist das Modell letztendlich blind. Es hat keine Verbindung oder hat eine Ahnung, was mit der Ansicht oder dem Controller los ist,
außer dem, was davon angefordert wird? Und was ich damit meine, was davon angefordert wird, ist, dass der Controller, Wie Sie hier sehen, wird
der Controller mit dem Modell interagieren und die Daten aktualisieren, die im Modell sind, und die Ansicht wird mit dem Modell interagieren, um von Fragen stellen, um die Daten zu
erhalten, die es benötigt, um anzuzeigen, was es benötigt, um dem Benutzer die
Benutzeroberfläche anzuzeigen , die er für den Benutzer anzeigen muss. Aber das Modell hat wirklich keine Ahnung davon. Es weiß nicht, warum die Daten verwendet werden müssen. Es weiß nicht, warum es aktualisiert werden muss. Alles, was es weiß, ist, dass ich diese Daten aktualisieren soll, oder mir wurde gesagt, diese Daten abzurufen und zurückzugeben. Und so reagiert es einfach auf die Anforderungen des Controllers und der Ansicht. Und das ist wichtig, um zu verstehen, was zwischen dem
Controller und der Ansicht und von allem anderen, was mit dem Modell passiert, zu trennen . Das Modell dreht sich letztlich um Ihre Art von Datenbankfunktion, also wird es das Ding sein, das geht. Es wird sein, dass Ihre Menge Daten in eine bestimmte Tabelle einfügen wird. Wenn es gesagt wird, wird
es diese Daten aktualisieren. Wenn es gesagt wird, dass es es es abruft und es zur Ah-Ansicht zurückgibt, wenn es gesagt wird
,wird
es sein,
ah wieder, die Daten zu , wird
es sein, löschen. Wenn es gesagt wird. Es reagiert also nur auf das, was es zu tun hat, und es ist völlig blind und konzentriert sich ausschließlich auf die langfristige Speicherung von Daten. Okay, also Sache, wenn Sie denken, Modell, es ist nicht 100%. Aber denken Sie einfach an die Datenbank. Wenn Sie daran denken, dann kommen wir in diese Unterscheidung zwischen der Ansicht und dem Controller. Jetzt werden Sie feststellen, dass es keine Pfeile zwischen Ansicht und Controller gibt,
und hier kommen wir in diese Unterscheidung zwischen dem, was Sie von Frameworks sehen werden, die da draußen
sind, und einer Art echten M v C In wahrem M V C. Es gibt keine Interaktion zwischen der direkten Interaktion zwischen dem Controller und der Ansicht. Die einzige Art, wie sie indirekt miteinander interagieren, ist durch das Modell. Und was ich damit meine, ist, dass, wenn der Controller einige Daten im Modell aktualisiert, das sich
natürlich letztendlich auf die Ansicht auswirkt. Aber der Controller sagt der Ansicht nichts direkt, und die Ansicht sagt dem Controller nichts direkt dort völlig getrennt. Nun, was Warum das von modernen Frameworks unterscheidet, ist eine Menge der modernen Frameworks . Was Sie sehen werden, ist der Controller tatsächlich auf der Ansicht und dem Modell sitzt. So oft, was passieren wird, ist, dass der Controller steuert, welche Ansichten
angezeigt werden . Und es ist einfach, Vorlagen aus der Ansicht zu ziehen, um die richtige Anzeige zu haben. Und das ist nicht wirklich wahr. M v c. In true NBC sind
die Ansichten mehr als nur Vorlagen. Die Ansichten interagieren tatsächlich und sprechen mit den Daten, und sie kontrollieren
das, den ganzen Teil davon. Also, um wirklich spezifisch darüber zu bekommen, wie das funktioniert, lassen Sie uns sagen, dass Sie zu einer Art Webseite gehen, und wenn Sie zu Ihrem gehen lassen Sie uns sagen, dass indiziert, Ich könnte sein, was auch immer Domain Lissy Index, stoppen PHP Wenn diese Seite lädt, gibt es eine Reihe von Dingen, die in jeder Art von Anwendung passieren müssen. Zunächst muss
die Anwendung wissen, auf welcher Seite Sie sich befinden. Sind Sie auf Index Dot PHP? Wissen Sie, wenn Sie in einem CMS sind, könnten
Sie ein Index Punkt PHP sein. Aber dann ist ein Abfrageparameter von P gleich neun. Nun,
das bedeutet, dass wir den Beitrag anfordern, der die Idee von Nummer neun hat. Das ist anders, als auf der eigentlichen Homepage zu sein. Sie müssen also wissen, wo der Kontext, wo Sie sich befinden, als Ergebnis dessen, wo Sie sich befinden , Sie wissen müssen. Vielleicht muss ich nach ah suchen,
sehen, ob es irgendwelche Sitzungsvariablen gibt, um zu sehen, ob sich diese Person angemeldet hat. Oder vielleicht brauche ich, ich habe ja,
Abfrageparameter, der angegeben hat, dass ich bestimmte Informationen
abfragen, abfragen und Dinge anders anzeigen muss. Also, wenn Sie auf Index Punkt PHP wissen würde Abfrageparameter, Ich könnte die Vorlage home dot PHP ziehen Und ich könnte die Daten sagen oder sagen Sie das Modell Hey, ich brauche alle Beiträge. Okay, ich brauche oder ich brauche die letzten 10 Post, weil ich ein Display 10 zu der Zeit bin. Es wird also das Modell abfragen und sagen, ich brauche die letzten 10 Beiträge. Es wird greifen. Okay, ich brauche die Homepage-Ansicht, und es wird die Daten nehmen und sie in die Ansicht einfügen. Und das führt letztlich zur Anzeige der Seite. Okay, das ist der Job der Ansichten. Die Ansicht soll all das behandeln. Finden Sie den Kontext heraus. Finde heraus, was Dad, ich brauche, damit ich herausfinden kann, welche Ansicht ich brauche. Also weiß ich, was ich dem Benutzer anzeigen muss, dass alles die Ansichtsseite der Dinge ist. Die Controller-Seite der Dinge übernimmt, wenn eine Art von Interaktion
zwischen dem Benutzer und unserer Anwendung besteht . Sagen wir mal, du bist wieder dran. Sie befinden sich auf einer einzelnen Blockbeitragseite und auf einer einzelnen Blawg-Post-Seite kann
es ein Kommentarfeld geben, also gibt es einen kleinen Textbereich mit der Schaltfläche „Senden“. Sobald das senden, wird die
Schaltfläche geklickt und lassen Sie uns nur für eine Sekunde vergessen Ajax und JavaScript all das für eine Sekunde vergessen. Stellen wir uns einfach Zeit PHP und nichts anderes vor, sobald auf diese Schaltfläche geklickt wird. Wir hatten jetzt eine Interaktion zwischen dem Benutzer und unserer Anwendung, und wir müssen damit umgehen. Und so brauchen wir eine Möglichkeit, es zu wissen. Nun, welche Daten wurden übermittelt, was war der Kontext und was es war? Etwas es. Ich meine, es hätte ein Kommentar sein können, aber es hätte auch der Admin in der Rückseite sein können und einen neuen Beitrag erstellen können, wie der Kontext dieser Daten, damit ich herausfinden kann, was ich damit tun muss. Das macht der Comptroller. Der Controller findet heraus, findet heraus. Okay, Diese Daten wurden von einer einzelnen Moorpost-Seite übermittelt. Es war ein Kommentar und es war ein Kommentar zu diesem speziellen Beitrag. Dies war ein Kommentar von dieser Person. Hier ist, was der Kommentar war. Dies ist das Datum, das Sie wissen, es ermittelt den gesamten Kontext, woher diese Benutzerinteraktion kam. Und es braucht diese Interaktion und verarbeitet sie. Und dann wird es aktualisiert. Demotte erzählt dem Modell Was Toe Update? Entsprechend. Also heißt es zum Modell,
im Grunde, Hey, Hey, wir haben gerade einen Kommentar bekommen, den ich brauche. Und es war auf diesem Beitrag. Sie müssen Ihrer Datenbank einen neuen Datensatz zu Ihrer Kommentartabelle hinzufügen. Und das sind die Daten Ford. Dies ist der Beitrag, der von Dies ist, wer von etcetera. Das Modell geht in Ordnung. Wer hat Termine geendet? Das war's. Es tut nur, was ihm gesagt wird. Also, jetzt kann das ein wenig schlammig sein, weil Sie anfangen können, OK zu denken, die Ansicht und der Controller verbunden, weil, wenn Sie auf der Seite sind und es eine
Formularschaltfläche gibt. Das ist eine Art Ansicht, aber es sind auch vom Benutzer übermittelte Daten, aber es ist eine Art Controller, also sind sie irgendwie gemischt. Aber der Weg, um die klare Unterscheidung darüber zu machen, ist dies. Die Ansicht ist verantwortlich für die Anzeige der Schaltfläche und die Anzeige des Formulars und des
Aktionsparameters im Formular, um zu sagen, wo dies ist. Diese Daten sollen in der Ansicht verarbeitet werden, ist für die Anzeige verantwortlich. Sobald die Schaltfläche gedrückt ist, jedoch nichts damit zu tun, hat
die Ansicht
jedoch nichts damit zu tun,wie die Daten selbst verarbeitet werden. Das ist alles, was der Controller ist. Okay, also übernimmt der Controller an diesem Teil, und dann wird es das Modell aktualisieren. Und dann, natürlich, als Folge davon, dann wird die Ansicht geändert, weil die Daten geändert wurden. Also wieder, Teoh geht irgendwie durch den Prozess. Wenn eine Seite geladen wird, sagen
wir, eine einzelne Block Post Seite. Es ist die Verantwortung, die U.
R L zu betrachten und zu sagen, Ooh, wir haben P gleich neun. Okay,
das bedeutet, dass das Post I Dean ist, das ist ein Posten seiner I. D neun. Und so muss ich die Daten für diesen Beitrag aus der Datenbank holen. Ich brauche meine einzelne Post-Ansicht, weil dies eine einzelne Beitrag-Seite ist, und ich werde diese Daten in diese Vorlage und Boom einfügen oder injizieren. Das ist, was ich anzeigen werde, das ein Kommentarformular enthält. Also, das ist die ganze Ansicht und es in diesem Prozess, die Ansicht kann hin und her mit dem Modell aussehen und sagen, Hey, ich habe einen Beitrag mit der Idee von neun. Gibt es das? Und das Modell kann Nope sagen, das gibt es nicht. Und du kannst gehen, Hope existiert nicht. Das heißt, ich brauche meine Vorlage für meinen 404 Boom. Ich zeige das an oder es kann sagen, Hey, gibt
es diese Post-Idee von neun und Modell sagt:
Ja, Ja, das existiert. Und dann kannst du gehen. Okay, schicken Sie mir die Daten dafür. Und jetzt kann die Aussicht gehen. Okay, ich habe Daten dafür und wie ich meine einzelne Vorlage brauche. Ah, Akte. Hier geht's. Hier ist, was Sie brauchen. Das ist die Interaktion zwischen Ansicht und Modell. Okay, jetzt, sobald diese Seite angezeigt wird und das Formular enthält, das der ehemalige übermittelte Controller
übernimmt . Controller, weißt
du, sagt zur Datenbank, Hey, ich habe einen Kommentar für Post I D neun. Dieser Beitrag I d neun existiert. Model sagt Ja, das existiert, sagt
er. OK, fügen Sie diesen Kommentar zur Anzeige hinzu. Diese Daten in die befinden sich in einem neuen Datensatz in der Kommentartabelle referenzieren und es referenziert. Ah, Post I D Nummer 9 Datenbank geht gut. An diesem Punkt teilt
die Datenbank dem Controller mit, ob dies erfolgreich war oder nicht. Es wird sagen, dass es zurück zum Controller sagen wird. Hey, dass dieser Kommentar Sie auf mich und einfügen, Es ist gut zu gehen. Alle eingefügt und Controller wird jetzt danach suchen, wenn das, wenn das Modell an
den Controller zurücksagt . Hey, ich habe versucht, die Daten einzufügen, aber etwas ist schief gelaufen. Hier ist schief gelaufen. Was ist schief gelaufen? Der Controller. Go Hope etwas ging schief, und es und es wird dann behandeln, dass entsprechend in Bezug auf das, was Sie eingerichtet haben. Wenn Sie zu einer anderen Seite oder was auch immer gehen wollten, wird
es eine Art Luft basierend darauf umgeleitet. Okay. Und so gibt es am Ende von allem, was der Comptroller wieder macht. Wir vergessen Ajax und JavaScript für eine Sekunde. Was auch immer das Alter wirkt, was auch immer das Ende des Comptrollers tut, es wird immer eine Art von Seitenladen oder Umleitung geben. Sie können also auf eine Luftseite weitergeleitet werden oder vielleicht lesen, ob, wenn es erfolgreich ist, der Controller sagen kann, OK, es war erfolgreich. Wir können hier umleiten. Am Ende dessen, was auch immer der Comptroller tut, wird
es immer Page geben. Es wird immer eine Art Aktualisierung der Ansicht geben, wenn das und es kann eine Weiterleitung zu einer anderen Seite sein, usw. Aber es gibt immer eine Art Neuladen einer Aktualisierung. Okay, wenn das passiert und dass die neuen Seiten jetzt online kommen, sind
wir jetzt wieder in die Ansicht hat die Kontrolle. Okay, also wirklich, die einzige Interaktion zwischen dem Controller und der Ansicht ist, dass der Controller diese Art von Aktualisierungen
auslöst und sagt, wir müssen die Seite neu laden, weil unsere Daten aktualisiert wurden. Also das ist und dann, wenn das Nachladen passiert, dann sind Sie wieder in die Ansicht ist die Sache, die versucht herauszufinden, was los ist. Okay, wir sind wieder auf dem Posten I d 9. Dafür müssen wir den Inhalt bekommen. Lasst uns alle Kommentare schnappen. Oh, es gibt einen neuen Kommentar Boom. Wir füllen die Seite mit dem neuen Kometen, okay? Und so wieder, nur um zu einer Art echten NBC zurückzukommen, ist
es der Benutzer, der wahrscheinlich der Controller, der Benutzereingaben verarbeitet und direkt mit dem Modell
kommuniziert und letztendlich das Modell aktualisiert und manipuliert. Es ist die Ansicht, die mit dem Modell interagiert und letztendlich das Richtige anzeigt. Die richtige ah, uh, Benutzeroberfläche für den Benutzer basiert auf dem Kontext, dass das, dass das alles in Bezug auf, was, Pager auf jeder Art von Nein, jede Art von anderen -Sitzung sehr sichtbar überprüfen könnte. Und dann
natürlich die Daten, die es tatsächlich vom Modell anfordert. Also wieder, ich möchte Ihnen das große Bild Framework für das geben, was NBC tatsächlich ist und wie diese Dinge interagieren. Hoffentlich bringt dich diese Art auf den richtigen Weg, und dann möchte ich mir nur ein paar verschiedene APs ansehen. So ist man von seinem nennt diesen Mini. Das ist also nur eine zit Schwester. Es ist eine extrem einfache, nackte PHP-Anwendung. Es ist wirklich für Prototyping erfüllt. Wenn Sie sich mit dem Aufbau von Frameworks vertraut machen möchten und Sie mit dem Fuß beginnen möchten, mit und so weiter
interagieren möchten, dann können Sie dies verwenden. Es gibt auch verschiedene Gabeln davon. Also hast du winzig, du hast viele, ah, solche Dinge. Also,
wieder, wieder, es ist eine,
ähm, es ist eine sehr einfache Sache, die man sich ansehen kann. Es ist ein bisschen einfacher, sich so etwas anzuschauen, als sofort etwas wie Laura Bell
anzuschauen und so zu sein, Whoa, was ist los? Also, ah, wieder, eine, die Sie sehen können. Es ist ein bisschen älter, aber diese Dinge neigen nicht dazu, eine ganze Tonne zu ändern, weil sie wirklich einfache, nackte Knochen sind. Also, wenn wir in die Anwendung klicken, können
Sie sehen, dass wir Ordner für die Ansicht für das Modell für den Controller haben, und so, wenn wir hier klicken, dann haben wir diese die verschiedenen Ansichten, die wir zu Hause haben und wenn wir unterschiedliche Art von Dateien, die sich dort für die Homepage befinden. Wir haben Probleme Also haben wir ah Index für die wir Songs auf Wir haben ah Anzeige von Songs Wahrscheinlich eine Bearbeitung von Songs und so weiter Also das sind alle verschiedene Ansichten Wenn wir uns das
Modell ansehen , gehen Sie zum Modell, dass PHP und wir schauen Sie hier in 'll bemerken, dass dies alles in Ordnung ist mit der Datenbank Ah Verbindung über PDO immer alle Songs Also lesen,
bekommen und lesen Sie die gleiche Sache Also bekommen alle Songs Ah, hier
unten haben wir Song bekommen Also bekommen Sie einen Song Diese Luft Beide Lese-Methoden haben wir Song hinzugefügt Also das ist einfügen Wir haben Updates Song Also das ist Update und wir haben kein Löschen Aber
wir haben die Führung hier oben? Oh ja, wir haben den Song löschen und dann haben wir viele Songs bekommen, also haben wir drei Lesemethoden. Wir haben ein Update. Wir haben ein Löschen Ah, und wir haben eine Einfügung oder erstellen Also wieder, zurück zu meinem Punkt, dass das Modell sich hauptsächlich mit den Datenbank-Interaktionen befasst Es ist wirklich auf den grausamen es und dann irgendetwas Art von Hilfsmittel um das verschiedene Arten von Menschenmengen. Sie haben also drei Lesemethoden und so weiter, die Sie möglicherweise tun müssen. Aber die Datenbank oder das Modell konzentriert sich ausschließlich auf die Daten, die Speicherung von Daten, die Aktualisierung von Daten, das Abrufen von Daten, diese Art von Sache. Nun, weißt
du, die Art von, wenn wir uns die Ansichten ansehen, über die wir sozusagen gesprochen haben. Wenn wir zu Hause schauen und wir uns Index Punkt PHP anschauen, ist
es wirklich nur eine Art Vorlage. Und dann, wenn wir in, ah, Controller an, lassen Sie uns einfach mit nach Hause gehen, können
Sie sehen, dass der Controller verschiedene Ansichten lädt. Also das ist, wovon ich spreche, wenn Sie sich einige dieser mehr ansehen, äh, diese Frameworks, die da draußen sind, sind sie setzen den Controller auf die Ansicht, und sie haben tatsächlich den Controller, der Ansichten lädt und herausfinden kann, welche Ansichten Zehenbelastung. Und das ist wirklich nicht die Art und Weise, wie Art von reiner NBC entworfen Jetzt wieder, ich sage nicht, dass das schlecht ist. Ich sage nicht, dass das eine besser ist als das andere. Ich sage einfach, dass die Art und Weise, wie viele dieser Frameworks gegangen sind, eine Art
Veränderung von NBC ist . Das ist also die Art von Sache, die du sehen wirst. Aber du tust es immer noch. Sehen Sie, hier haben wir Modell. Wir haben dich. Wir haben Controller. Hier ist ein Beispiel für ein anderes. Also haben wir dieses bisschen grundlegender. Wir haben Ansichten in hier Seiten, Post Benutzer. Also all die verschiedenen Arten von Ansichten, die wir haben könnten. Wenn wir auf Seiten gehen,sehen
wir die verschiedenen Seiten, die wir haben. Wenn wir auf Seiten gehen, Ähm, wir gehen zu Models. Was geht an den Benutzer? Dies ist eine kalte Klasse, die sich der Arbeit mit dem Benutzer widmet, wie ich bereits erwähnt habe. Dies ist eine ganze Klasse,
ah, ah, dem Umgang mit Beiträgen beschäftigen
soll. Wenn wir hier in Bibliotheken gehen, haben
wir Controller ganze Klasse für den Controller. Uh, wir haben Kern. Wir haben eine ganze Klasse für den Kern. Hier haben wir Datenbank. Also eine ganze Klasse für die Interaktion mit der Datenbank. Und so wieder, wir haben Modelle, Ansichten, Controller. Wir haben diesen Helferbereich hier. Und dann, wenn wir uns Bootstrapped aus PHP anschauen, Dies ist, wo Sie unsere SPL Auto Load Register-Klassennamen sehen können und er geht mit erfordern will Bibliotheksbestand. Name der Klasse. Dies ist also für den Umgang mit den ah-Klassen, die in der Bibliothek sind. Das ist, was dieser Auto-Loader hilft dio. Jetzt scheint dies überhaupt nicht mit Namen Spaces zu arbeiten, also ist das etwas, auf das man achten muss. Aber noch einmal, nur ein paar Beispiele für verschiedene Arten von, ah,
Anwendungen, mit denen Sie Ihre Arbeit sehen könnten, und wie sie versuchen, M. V. C. Am Ende der Tag, wissen
Sie, dass es Ihre Anwendung ist, und Sie wissen, wie Sie es implementieren möchten, wie Sie es implementieren möchten. Ich möchte Ihnen nur eine Art Primer geben, um zu helfen, die wichtigsten Konzepte zu verstehen, und die Sache zu verstehen ist, und einige Leute könnten damit nicht einverstanden sein und sagen Nein, es wurde herausgefunden, aber wieder, gehen mit dem, was wir über die Unterscheidung von,
Sie wissen schon,
Art von echter NBC gesprochen Sie wissen schon, haben und was wir da draußen sehen und Frameworks, ich glaube nicht, das ist für die Debatte. Aber ah, viele Leute versuchen immer noch, diese Art von Sache herauszufinden, oder? Es ist nicht so, als gäbe es diesen harten, schnellen Weg. So machst du es. Ordnung, es gibt immer noch einige, zumal Ihre Anwendung komplexer wird und gebeten hat, mehr Dinge zu handhaben. Es kann beginnen, ein wenig mawr schwieriger zu sein, diese Art von Trennungen und
so weiter zu halten . Aber wenn Sie die Basiskonzepte in der Grundidee bekommen und verstehen, wissen
Sie, dass sich dieser Controller für den Umgang mit Benutzereingaben und die Aktualisierung des
Modells erfüllt hat , oh interagiert und manipuliert das Modell. Die Ansicht ist dafür gedacht, die Benutzeroberfläche und die Datenanforderungen
anzuzeigen und herauszufinden, welche Vorlage sie
anzeigen muss und all diese Art von Sache in dieser Interaktion. Und das Modell ist völlig blind. Alles, was es tut, ist auf das zu reagieren, was von ihm verlangt wird. Dann beginnt diese Art von Fuß. Sie könnten anfangen herauszufinden, wie Sie Ihre Anwendung in irgendeiner Weise trennen können. Diese Art von macht Sinn, so hoffentlich gibt Ihnen das ein wenig Verständnis von NBC in einigen der
Top-Level-Sachen . Wie ich schon sagte, das ist eine Grundierung. Wenn Sie wirklich in NBC speziell als Designmuster graben möchten, eine unter den vielen. Es ist ein beliebtes. Es ist ein guter. Aber es ist einer von vielen. Ich würde empfehlen, keine vollständige auf NBC Kurs zu finden und eine Art Tauchen in, dass und
im Auge zu behalten , einige der Dinge, über die wir gesprochen haben, sie werden,
die Art, wie sie Ihnen beibringen können. Ah, NBC. Es ist vielleicht nicht die wahre Art von NBC, über die wir reden, und das ist völlig in Ordnung. Wenn es Ihnen gut geht, wie es Ihnen gelehrt wurde, dann gehen Sie auf jeden Fall diesen Weg. Also gut, das wird es für diese Lektion tun. Hoffentlich hast
du da etwas raus. Danke fürs Zuschauen. Nächstes Mal reden wir mit dir.
11. So erstellst du professionelle Anwendungen mit OOP: Hallo, John Morris. Hier, John Morris, online dot com. Diese Lektion. Ich möchte versuchen, Ihnen wirklich die Hilfe oder die Richtung zu geben,
den Einblick, um mit dem Aufbau Ihrer eigenen professionellen Anwendung beginnen zu können, basierend auf allem, was Sie bis zu diesem Punkt gelernt haben. Es gibt also ein paar Vorbehalte. Erstens, ich denke, das Größte ist, was ich Ihnen hier zeigen werde, ist nicht etwas. Das ist etwas, das ich eine Art Version von einmal gesehen habe, und ich habe irgendwie meinen eigenen Geschmack hinzugefügt. Aber was ich Ihnen hier zeige, ist nicht notwendigerweise die Art, wie alles tut. Jeder macht es jetzt, oder ich nicht. Er würde nicht einmal sagen, gehen so weit, um zu sagen, dass dies notwendig ist, der beste Weg, es zu tun. Was ich wirklich versuche, zu erreichen, indem ich Ihnen das zeige, ist zu versuchen, Ihren
Verstand zu strecken und Sie dazu zu bringen, über alles nachzudenken, was wir auf verschiedene Arten gelernt haben und zu helfen, Ihre Kreativität zu entfalten. Und es gibt einen wichtigen Grund, warum ich das tun will, weil ich nicht eins der Dinge, in denen ich denke, dass viele Leute sich verfangen haben, und es ist wirklich, wirklich gute Programmierer, sind diese, dass es diese harte, schnelle Wege dafür. Wir müssen Dinge tun. Sie haben wahrscheinlich das überall gesehen, wo Sie wissen, dass NBC herauskommt und jeder sagt Ihnen, dass Sie NBC tun müssen, und Sie sehen, Sie wissen, was in unserem Raum gerade
jetzt los ist auf Liebe beginnt eine Art von dieser Standardisierung der Art, wie alles ist getan, und ein Teil davon ist gut. Sie entwickeln Best Practices und möchten wissen, um die beste Anwendung zu erstellen. Sie verlassen sich auf beste Anwendungen und so weiter. Aber eines der Probleme, zu denen ich denke, das führt, ist, dass Menschen sich eine bewährte Praxis ansehen, die sie beginnen zu betrachten. Es ist, als wäre es der einzige Weg. Und wenn du es nicht so machst, während du nur ein Idiot bist und ich mich wirklich bemühe, das zurückzudrängen, denn letztendlich will ich keine Studenten erschaffen, die wissen, wie es geht, die nur wissen, wie man tut, was alle anderen tun. Ich will dir das geben, was ist. Warum hat die NBC Primer. Aber ich will Studenten, die keine Anhänger sind, sondern Führer, die die kreativen Menschen sind, die ständig auf die Dinge schauen und sagen: Wie können wir das anders machen? Wie können wir das auseinanderbrechen? Wie können wir das besser machen? Und sind diejenigen, die Luft schaffen die neuen Wege, die die Best Practices werden? Das ist es, was ich wirklich versuchen will, dir zu geben. Und ich denke, der Weg, dies zu tun, ist, Ihren Geist zu strecken, Ihnen verschiedene Perspektiven zu
geben und Ihnen verschiedene Wege zu zeigen, dies zu tun. Selbst wenn du vielleicht zurückblickst , weißt
du, wir könnten alle auf diese fünf Jahre zurückblicken und sagen, Oh, das war wirklich dumm. Sie müssen bereit sein, das zu riskieren. Sie müssen bereit sein, zu riskieren, auf Ihr Gesicht zu fallen, um etwas Großes zu tun. Und ich weiß, dass ich hier etwas persönlich werde, aber das glaube ich
wirklich . Deshalb mache ich sogar dieses Video in erster Linie, um Sie hoffentlich zu inspirieren und Sie dazu zu
bringen, darüber nachzudenken und ein bisschen anders als vielleicht das, was alle anderen tun, so würde das sagen, dass ich über diese Idee des Bauens sprechen möchte Art von Anwendungen und die Art und Weise, dass alles funktioniert. Ist es für mich, dass es immer mit der Datenbank beginnt? Also, um darüber zu sprechen, Ich werde hoffen, Öffnen Sie diese Installation gefunden Keine Sorge. Wir werden einige der Dinge, die Sie hier sehen, mit diesem Index und so weiter. Alles, worüber wir reden werden, führt letztendlich dazu. Die Geschichten hier und die Einfachheit davon ist wirklich das, was wir suchen. Also, aber wieder, alles beginnt mit der Datenbank, weil dort die Daten gespeichert sind. Das ist wirklich in den meisten Anwendungen. Letztendlich wird
der wichtigste Teil Ihrer Daten vermasselt. Dann wirst du alle möglichen Probleme haben. Und diese Probleme sind viel schwieriger zu korrigieren, denn dann wissen Sie nicht, was Daten sind, oder? Wenn es sich um eine Code-Luft handelt, können
Sie die Daten verwenden, um es herauszufinden. Wenn es eine Datenluft ist, wird
es wirklich schwer zu wissen, was was ist. Also habe ich darüber in einigen anderen Kursen gesprochen, die getan haben, aber ich möchte hier wieder abdecken, weil wieder. Ich denke, das ist die Grundlage für eine professionelle Anwendung. Wenn Sie also eine Anwendung erstellen, gibt es wieder. Generell könnte
es Vorbehalte für diese Art von Sache geben. Aber die meisten Anwendungen, die Sie erstellen werden, gibt es drei primäre Arten von Tabellen , die Sie erstellen möchten. Und so möchte ich durch jede einzelne von ihnen sprechen und wie sie alle zusammenarbeiten. Die erste Art von Tabelle, die Sie erstellen werden, ist, was in einer
Objekttabelle genannt wird . Und hier werden Sie Ihre Objekte in den Daten über sie speichern. Also in unseren Tabellen Array genau hier. Und ich habe diese nur als Beispiele für einen Ausgangspunkt verwendet, um darüber nachzudenken, wie
Sie Ihre Datenbank erstellen können, abhängig von Ihrer Anwendung. Das wird sich natürlich ändern. Und eines der Dinge, die ich in diesem Video nicht tun möchte, ist, Ihnen alle Antworten zu geben. Das ist eher eine Herausforderung. Video dieses Video Luft. Diese Lektion soll Ihnen nicht alle Antworten geben, Ihnen
nicht den ganzen Code geben und Sie herausfordern, dieses Zeug zu schreiben und dieses Zeug
selbst herauszufinden . So bewegen Sie sich wirklich zu einem professionellen Entwickler. Aber in unserem Tabellen-Array hier, ist wir im Grunde, dass das, was ich hier sage, diese Luft ist, die verschiedenen Tabellen, die wir in dieser speziellen Anwendung haben könnten, dass die Post und die Kategorie-Tabellen unsere Objekttabellen wären. Also, wenn wir hier zum Beispiel für die Post-Tabelle kommen, was wir in diesen Tabellen speichern werden, sind die Daten, und ich möchte spezifisch sein und das Wort Daten verwenden und wir werden über den Unterschied sprechen. Was? Deshalb muss das spezifisch sein. Und zweitens. Aber es sind die Daten, die letztendlich irgendwie das Objekt bilden. Also ein Beitrag ist nicht wirklich ein Beitrag? Richtig. Wenn es keinen Titel hat, wenn es keinen Inhalt hat, weißt
du, wenn es keine Schnecke hat. Das und und und all diese können
natürlich diskutiert werden . Aber was wir sagen, wenn wir unsere Anwendung erstellen, ist, dass ein Beitrag nicht wirklich ein voller
Beitrag ist , es sei denn, es hat diese Dinge. Also wird die Objekttabelle diese Daten speichern und was Sie wieder? Was sind die beiden Dinge, die ich für einzigartig halte, an einer Objekttabelle? Ist das oder ein Objekt? die Daten, die wir speichern, ist beide erforderlich und wird ein Asterix setzen, erforderlich in dem Sinne, dass Sie mit nicht etwas von diesem Recht davonkommen können? Sie können einen Beitrag ohne Inhalt oder Beitrag ohne Titel erstellen. Es ist nicht so, als könntest du das nicht tun, aber es ist nicht wirklich ein Beitrag. Um das zu machen, was es sein soll, sind
diese Daten erforderlich, und es sind, ah, Daten, die letztendlich helfen, das Objekt zu bilden. Also, wenn wir über unsere Analogien nachdenken, ist
es wie die Räder, richtig? Räder kann man kein Auto haben. Technisch gesehen könnte
man ein Auto haben und es würde dort sitzen. Aber es würde nicht tun, was es tun soll, wenn es nicht die Räder hätte. Die Daten sind also wie alle Komponenten, die sie haben müssen. Okay, also und du musst wirklich rücksichtslos sein, weil du vielleicht denkst, dass etwas
Ah-Objekt etwas haben muss, wenn es wirklich nicht tut. Also wieder, Titelinhalt, wissen
Sie, vielleicht wäre ein vorgestelltes Bild eines, das Sie sagen, ist erforderlich. Eine Schnecke Sie ist der Entwickler. Entscheiden Sie das. Okay, das ist
also, was eine Objekttabelle ist. Es sind die Daten, die wirklich das Objekt selbst bilden. Und Sie können hier unten unter Kategorie sehen. Wir haben ähnliche Arten von wir haben I. D. Wir nennen es Name und Beschreibung, aber das ist wirklich ähnlich zu Titel auf Inhalt und dann eine Schnecke als auch. So sind unsere Post und unsere Kategorie-Tabellen Objekttabellen. Dies sind primäre Tabellen, diese mit denen von Neil, die wir speichern alle unsere verschiedenen Objekte, die wir in der
nächsten erstellen wir haben metta-Tabellen. So Meta-Tabellen sind wir über die Objekttabelle sprechen speichern
die Daten, die Meta-Tabellen speichern die Metadaten. Und so wieder, Metadaten haben Art von zwei verschiedenen Funktionen, die Art sind, im Gegensatz zu den beiden Funktionen, die Objekte haben und das sind Meta-Daten, Dinge, die wir als optionale s betrachten, so dass es nicht unbedingt immer für jedes Objekt festgelegt werden muss. Und die Metadaten sind normalerweise Zeug, das das Objekt beschreibt, das das Objekt beschreibt, oder die Daten, aus denen das Objekt besteht. Es sind nicht die Zeug-Daten, die tatsächlich das Objekt selbst erstellen. Okay, also um zu versuchen, ein Beispiel dafür in WordPress zu geben, gibt es einen Stecker, dass er kalte Yost CEO verwendet. Und eines der Dinge, die Yost CEO tut, ist, wenn Sie einen Beitrag erstellen, die ein Objekt in WordPress ist, fügt
es eine kleine Box für Sie ein Fokusschlüsselwort eingeben. Und wenn Sie den Fokus eingeben, Schlüsselwort, Was es tut, ist es analysiert, dass Ihr Titel, Ihre Inhalte, Ihre Tags, all diese Informationen über das Objekt und gibt Ihnen eine Punktzahl und dann gibt Ihnen zu Dingen, die Sie tun könnten, um es zu machen. Morrell seo freundlich. Also, das Fokusschlüsselwort, denke
ich passt
eindeutig in das ah, das Szenario der Metadaten, richtig? Das Schlüsselwort focus ist nicht Wir brauchen das nicht, um das Objekt zu erstellen. Es ist kein Teil des Objekts selbst. Was es tut, ist, dass es das Objekt mehr beschreibt. Es analysiert es und gibt uns eine Art Punktzahl. Und so ist es beschreibt, oder seine Daten über die Daten, was ist? Die Art der Definition von Metadaten und dann ist es auch nicht notwendig. Wenn wir das Fokusschlüsselwort nicht einfügen, haben
wir immer noch Ah, das Objektobjekt kann immer noch tun, was wir wollen. Ähm, wir werden einfach nicht wissen, was der CEO, der irgendwie für sie ist, also das ist der Unterschied zwischen den beiden und Ihnen irgendwie. Es ist nicht unbedingt eine helle Linie, heutzutage eine gemeinsame Phrase zu verwenden. Ah, es ist etwas, das man irgendwie hin und her gehen muss und versuchen, es jetzt
mit dem besagten herauszufinden , wenn wir diese Art von Daten speichern wollen, kann
es tatsächlich ein bisschen schwierig sein, wenn wir versuchen, diese Daten in der gleichen Tabelle wie unser Objekt zu setzen, richtig ,
Weil wir vielleicht , wissen
Sie, wenn, wenn wir wollen, ah, bestimmte bestimmte bestimmte Metadaten, die Wir werden zur tatsächlichen Objekttabelle hinzufügen, naja, wir müssten dafür eine Spalte haben. Und dann haben wir vielleicht 99 Beiträge, die diese Metadaten nicht haben und einen, der es tut. Also, welche Art von beginnt ein wenig Zeitverschwendung zu sein. Plus, wenn Sie beginnen zu überlegen, was wir möglicherweise 10 Stücke von Metadaten haben. Und jetzt müssten Sie hinzufügen. Wenn Sie es in den Objekten speichern möchten, müssen
Sie 10 Spalten hinzufügen, und dann müssten Sie die Daten darüber speichern, oder Sie müssten eine Art Meta-Spalte erstellen. Und dann müssen Sie versuchen, Schlüsselwertpaare einzufügen, was bedeutet, dass Sie irgendwie mit den Rays arbeiten würden, was bedeutet, dass Sie das serialisieren müssen,
was bedeutet, dass Sie es dann nicht suchen konnten. Und so beginnt es ein wenig zu verwirren, um zu versuchen, es so zu tun. Die Art und Weise, wie wir das tun, wie wir Metadaten verarbeiten und es modular und skalierbar
und flexibel machen , ist, dass wir eine Meta-Tabelle verwenden, und so hat eine Meta-Tabelle drei primäre. Ich sage nicht, dass dies die einzigen Dinge sind, die Sie haben können, aber das sind die wichtigsten Dinge, die Sie brauchen, um das zu funktionieren. Diese Post-Meta-Bezeichnung hier hat also drei Hauptspalten. Es wird das Objekt I D haben. Also in diesem Fall haben
wir Post. Also ist es die Post I d hier unten in Kategorie Meta wir haben Kategorie i d So hat das Objekt. I d hat einen Sanitäter e im Meta-Wert. Was wir also hier im Wesentlichen sagen, wenn wir einen Datensatz in dieser Tabelle erstellen,
ist, dass wir für diesen Beitrag mit dem I d von sagen
wir, wir wollen diese Metadaten daran anhängen. Und der Schlüssel, der Name der Metadaten ist unser Beispiel Fokus verwenden, Schlüsselwort. Und dann ist der Wert davon, sagen
wir PHP. Und was uns sagt, ist, dass dieser Beitrag i d das Fokusschlüsselwort dafür p PHP ist. Und jetzt können wir alle Arten von Datensätzen hinzufügen. Also bekommen wir hier einen weiteren Rekord. Wir könnten die gleiche Post-Idee von einem verwenden. Aber jetzt haben wir einen anderen Schlüssel, und wir könnten sagen, dies ist S e o score, und dann wir der Wert davon ist 90. Also, jetzt haben wir den gleichen Beitrag, zwei verschiedene Stücke von Metadaten, und wir könnten 15 Stücke von Metadaten über diesen bestimmten Beitrag speichern, und es macht unsere Datenbank nicht mehr umständlich oder so etwas. Es ist sehr modular, und wir könnten nicht speichern. Ah, die S e o. Score auf dem Fokus, Stichwort für Postnummer mit Idee zwei und drei und vier und etcetera. Okay, und wenn wir dann diese Daten erfassen müssen, können wir
tun, wenn wir in einem Vorher sind, gibt es ein paar Möglichkeiten, wie Sie damit umgehen können, wenn Sie greifen, wenn Sie greifen, sagen
wir, jemand besucht einen einzelnen Block -Post-Seite, und Sie möchten die Postdaten greifen, um sie anzuzeigen. Wenn Sie diese Daten erfassen, können
Sie automatisch alle Post-Meta abrufen, wenn Sie möchten. Und die Art und Weise, wie du das tun würdest, ist, dass du gehen würdest. Sie würden die Post-Meta-Tabelle abfragen und Sie hätten eine Where-Klausel
und diese wo Post I d gleich ist und die Idee des Beitrags,
dass Sie anzeigen, was das aus den Datenbanken greifen würde. Alle Datensätze in diesem Beitrag trafen eine Tabelle, die einen Beitrag i d haben. von einem oder was auch immer die Post Ideen. Und jetzt hätten Sie alle Metadaten, die diese abgefragt haben, mit denen Sie dann arbeiten
und anzeigen können , wie Sie möchten, auf Ihrer Seite. Du kannst es so machen oder vielleicht ein bisschen effizienter. Weg ist jeder Ort, an dem Sie wieder sehen möchten Sie laden eine Seite, die einen
Blockpost an jedem Ort anzeigt , an dem Sie ein bestimmtes Stück Metadaten anzeigen möchten, können Sie genau die Metadaten anzeigen, die Sie anzeigen möchten. Sie können die Meta-Tabelle abfragen dafür, so können Sie die Meta-Tabelle
abfragen und sagen,
Okay, Okay, ich habe Post I d ein und Sanitäter e Sie wissen Ah ah, Focus, Schlüsselwort. Und jetzt fragst du nur, dass du für den Post I d und den Sanitäter E aufhörst und du bekommst nur diesen einen Datensatz. Und jetzt ziehen Sie diesen einen Datensatz und zeigen Sie ihn an, wo Sie wollen. Anstatt alle Daten zu ziehen, egal ob Sie sie verwenden oder nicht, ziehen
Sie einfach die eine Sache, die Sie brauchen. Sie kann es irgendwie in beiden Fällen handhaben, aber es macht es wirklich modular für Sie, diese Daten auf dem Display zu ziehen und so
weiter, so dass Sie eine Tabelle gemacht haben, also haben Sie keine Objekte Tabelle. Sie haben eine Meta-Tabelle. Die letzte Art von Tabelle, die Sie haben, ist eine Beziehungstabelle und was die
Beziehungstabelle tut. Ist es im Wesentlichen Bindungen an Objekte zusammen? Der Kontext davon basiert also auf der Anwendung. So zum Beispiel können Sie
zum Beispiel
in einem CMS einen Beitrag in eine Kategorie einfügen. Das ist eine ziemlich häufige Sache, die Leute tun wollen. Nun, die Art und Weise, wie Sie das tun, ist durch Beziehungen. Tabelle Ah, in, sagen wir, ein soziales Netzwerk. Möglicherweise möchten Sie einen Benutzer erneut zu einem Freund mit einem anderen Benutzer machen. Sie tun es genau auf die gleiche Weise mit einer Beziehungstabelle oder einem E-Commerce. Ah, Bewerbung. Vielleicht möchten Sie sagen, Dieser Benutzer hat Zugriff auf dieses Produkt erneut. Die Art, wie Sie das tun, ist genau die gleiche. Es ist ein Beziehungstabelle. Also wieder, der Kontext, die Beziehung, die Art, wie Sie in der es speichern, wird in der Datenbank gespeichert. Ich nenne das eine dumme, dumme Beziehung. Die Datenbank weiß nicht, was die Beziehung bedeutet, und Sie könnten möglicherweise einige Daten zu dieser Tabelle hinzufügen, wenn Sie dies tun müssen. Teoh helfen, mehr Kontext zu schaffen. Aber im Allgemeinen weiß
die Datenbank nicht. Es weiß nur, dass diese beiden Dinge eine Art Beziehung haben. Und so erstellen wir eine Tabelle namens Post Category und in, dass wir das haben werden. Was heißt Postkategorie i D. Also das ist nicht die Post I. D. Es ist nicht die Kategorie d Es ist eigentlich, was es
ist, ist die Beziehung i d. Und das ist nur praktisch, wenn Sie löschen müssen Beziehungen und so weiter. Es ist ein bisschen einfacher, auf diese Weise abzufragen, aber es ist eigentlich nicht, ah, 100% erforderlich, um dies zu haben, aber es ist eine gute Sache. Aber die zwei wichtigsten Dinge, die Sie hier haben, ist, dass Sie eine haben. Sie haben im Grunde die beiden Objekte, die Sie verbinden möchten. Sie haben den Posten I D. Und die Kategorie i D. die verweist auf diese i d. Diese ich d nennen ihn von unserer Post und aus unserer Kategorie. Also, wenn wir ah Post mit dem i d von einem in eine Kategorie mit der Idee eines unserer
Beziehungstabelle mit buchstäblich in diesen beiden Spalten setzen wollen, hätten
Sie Post I D. Und es wäre der Wert eins und Kategorie D. Der Wert wäre einer, der eine Beziehung zwischen den beiden erstellt. Wenn Sie einen Beitrag mit Idee vier in eine Kategorie mit der Idee fünf setzen wollten. Ihre Beziehungstabelle in der Post I D hätte vier als Wert und in der Kategorie. D würde fünf als Wert haben, und das schafft eine Beziehung zwischen den beiden wieder. Sie können sie erstellen. Sie können sie aktualisieren. Du kannst sie wirklich lesen. Sie können sie wie jede andere Tabelle löschen. Und so ist es, wie Sie tatsächlich ah Post in eine Kategorie oder taggen Sie einen Beitrag mit einem bestimmten Tag . Oder fügen Sie einen Benutzer zu einem Produkt hinzu oder schließen Sie eine Freundschaft zwischen zwei Personen in einem sozialen Netzwerk. Es bindet an Objekte zusammen, und Sie tun das durch Beziehungstabelle. Okay, also das ist Ah, das ist eine Menge. Aber die Datenbanken sind super wichtig,
und es ist wichtig zu verstehen, wie wir uns auf eine modulare Art und Weise wie diese bauen können. Also für jedes Objekt, das Sie erstellen möchten, Sie im Allgemeinen haben
Sie im Allgemeineneinen Beitrag und eine Post-Meta-Tabelle. Sie müssen sie nicht unbedingt an einem Tisch haben, wenn Sie keine
Metadaten speichern möchten. Ich würde sagen, die meisten Anwendungen,
wenn sie wachsen, werden Sie irgendwann haben, aber Sie müssen es nicht unbedingt haben. Und so, aber wieder, für jedes Objekt eines Post Post traf eine Tabelle, im Allgemeinen, und dann für jede Art von jedem zwei Objekte, die
Sie wollen Ah, wollen Sie zusammen binden, Sie werden eine Beziehung stabil. Wenn Sie also Kategorien Beiträge in eine Kategorie einfügen, hätten
Sie eine andere Osterschifftabelle, um einen bestimmten Benutzer zum Autor eines Beitrags zu
machen, dass dieser tatsächlich ein bisschen ist. Da ist ein bisschen Fudge Raum da, weil, , wenn du arbeitest,
schau dir WordPress an. Der Autor ist tatsächlich in der Objekttabelle, und so geben sie dann einfach die Idee des Autors und die Objekttabelle an. könntest du tun. Wir befinden uns in einem Fall, in dem Sie nicht, ähm, wissen
Sie, in diesem Sinne macht
es Sinn, weil ein Autor wirklich,
wirklich wichtig ist . Und Sie sind, wissen
Sie, in WordPress Sie haben nicht mehrere Autoren für ein bestimmtes Objekt. Du bindest also nicht. Sie müssen nicht Ah ein Objekt an mehrere andere Objekte binden, wie Sie es tun würden, wenn Sie einen Beitrag
haben und Sie es in mehrere Kategorien einfügen möchten, das ist, wo es beginnt schwierig zu werden. In diesem Sinne macht
es irgendwie Sinn. Und deshalb sage ich, du musst diese feine Linie fahren, Ähm, in all dem Zeug. Aber im Allgemeinen, jedes Mal, wenn Sie zwei Objekte miteinander verbinden möchten, werden
Sie eine stabile Beziehung dafür haben. Okay, das ist
also der Datenbankteil davon. Nun die andere Seite davon ist, dass wir jetzt die Code-Seite davon haben. Wie unterstützen wir all das und machen das alles zusammen und tun es objektorientiert? Also habe ich hier drüben erschaffen. Sie werden sehen, wie dieser Ordner namens Nano. Sie werden das im Download für den Quellcode bekommen. Wieder eins. Vorbehalt. Ich habe dies speziell geschrieben, um Ihnen nicht alle Antworten zu geben. Ich möchte erneut betonen, dass dies nicht etwas ist, das Sie einfach eintauchen und anfangen können zu verwenden. Es wird verlangen, dass du es verstehst, durchgehst und all das Zeug ausschreibst. Also wieder, das ist ein Challenge Video. Teoh fordere dich heraus, da rauszukommen und tatsächlich diesen Code zu schreiben, nicht nur eine Art von dem, was ich dir gebe. Also, ähm, das wird einfach nicht. Das Einzige, was es tun wird, ist, was du hier siehst. Und du, was immer du willst, wenn du es benutzen willst, musst
du es in das System einbauen. Okay, also haben wir über Objekte gesprochen. Wir sprechen über das Speichern von Objekten in unseren Datenbank-Objekttabellen. Wir sprachen über die Kapselung in früheren Lektionen über das Ausführen eines Objekts orange in Art der Programmierung. Also, wie sieht das jetzt aus, da wir unsere Datenbank eingerichtet haben? Also möchte ich hier anfangen, und das erste, was ich Ihnen zeigen möchte, ist, dass
wir für unsere beiden Objekte, die in erster Linie mit Ihrem Beitrag und Ihrer Kategorie
arbeiteten, mit Ihrem Beitrag und Ihrer Kategorie
arbeiteten,zwei Ordner in unserer Bibliothek oder Lib-Ordnerkategorie haben und in diesem Beitrag veröffentlichen. Dann haben wir diese verschiedenen Dateien und so können Sie jede sehen. Wir haben Post Ansicht und Post Service Kategorie, Kategorie Ansicht und Kategorie Service. Also, wieder, ich baue das nicht auf eine Art echte NBC-Art. Ich möchte dir etwas anderes zeigen. Und das war etwas, das ich vorher gesehen hatte und irgendwie mein eigenes Ding daraus entwickelt . Und ich meine, wenn ich ehrlich bin, mag
ich das eigentlich ein bisschen, ein bisschen besser. Macht mehr Sinn für mich in meinem Kopf als,
ah, ah, echte NBC Sache, aber das ist für jeden Entwickler, auf eigene Faust zu stellen. Aber lass mich weitermachen und das loswerden. Die Art, wie das funktioniert, ist, dass jede dieser Dateien eine Klasse ist, okay? Und wenn wir es mit NBC in Beziehung setzen würden, im Wesentlichen haben
wir
im Wesentlichenunsere Post-Ansicht, die unsere Ansichten behandeln wird. Das ist ziemlich ähnlich zu dem, was Sie mit einem neuen NBC-Setup haben würden. Wir haben Post Service, was viel wie das Modell wäre. Das wird also all unsere Art von Datenbank-Zeug behandeln, die wir tun müssen. Es fragt die Datenbank nicht direkt ab, aber es ist alles, was oben auf unserer Datenbankklasse sitzt, um das Löschen durchzuführen. Also bekommen alle Beiträge,
Aktualisieren von Beiträgen. Ah, die führenden Beiträge, Erstellung von Beiträgen, all diese Art von Sache. Alles, was in dieser Post-Service-Klasse sein wird und dann unsere Post Dot PHP-Klasse ist eine Art von unserem Controller. Okay, also wird es die Sache sein, die den Verkehr leitet und sicherstellt, dass wir nach den richtigen Dingen
abfragen und so weiter basierend auf den Daten, die es bekommt. In gewisser Weiseist
es ähnlich wie bei einem NBC-Setup. In gewisser Weise Es ist nur die Art und Weise, wie das angelegt ist, ist ein bisschen anders. Und wahrscheinlich ist das Größte, wenn ich all diese Dateien öffne, was wir getan haben, damit wir geerbt haben. Also, wenn ich schaue, wenn ich den Postpunkt PHP-Klassenpost betrachte, erweitert die Post-Ansicht, wenn ich in der Post-Ansicht schaue, erweitert die Post-Ansicht den Post-Service, okay, und dann ist Postdienste auf eigene Faust. Also jetzt die Art und Weise, wie das implementiert wird und wie Sie darüber nachdenken oder tatsächlich rückwärts, also möchte ich nicht, dass das zu verwirrend ist, aber ich denke, es wird hier Sinn ergeben. Sie erinnern sich also an unsere Vererbungslektionen, dass jede Klasse,
die eine andere Klasse erweitert , die die Erweiterung ausführt, das Kind der erweiterten ist. Also Post View ist eigentlich ein Kind des Postdienstes, und Post ist tatsächlich ein Kind der Post-Ansicht. Wenn Sie sich also Post-Dienste ansehen, ist
die übergeordnete Post-Ansicht das nächste Kind,
und Post ist irgendwie das ultimative Kind. ist
die übergeordnete Post-Ansicht das nächste Kind, , wie wir diesen Beitrag verwenden, endet jedoch Die Art und Weise, wie wir diesen Beitrag verwenden, endet jedoch, weil es die Ansicht erweitert und Ansichten erweitert Service. Es erbt alle Methoden von rühmen, service und view. Also dieser Beitrag, dieses ultimative Kind kann jede Methode aufrufen, und der Grund, warum wir das tun, ist nur, um es ein wenig einfacher zu machen. Wenn wir hier zu unserem Nano kommen, können
Sie sehen, dass wir zwei neue Instanzen dieser ultimativen Kind-Klassen für Post
und Kategorie erstellen . Jetzt können wir laufen, sobald wir diesen Posten in Position haben. In dieser Nano-Klasse können
wir jede Methode ausführen, die uns im Post oder in der Kategorie zur Verfügung steht, anstatt e acht View und dann Instanz e Service instanzieren zu müssen. Indem wir sie erweitern, haben
wir nur Zugriff auf alle Methoden. Jetzt würde ich mir vorstellen, dass jemand, der NBC viel benutzt und ein großer NBC-Befürworter ist, einfach aus ihrem Stuhl fiel und einen Herzinfarkt hatte,
weil das einfach aus ihrem Stuhl fiel und einen Herzinfarkt hatte,
weil dasziemlich blasphemisch
ist. Von dem, was ich von den NBC-Leuten sammle, dass das nicht etwas ist, was du tun willst. Du willst sie wirklich getrennt haben. Ich persönlich bevorzuge es auf diese Weise und in der Art, wie ich Dinge tue, aber es kann dazu führen. Wenn Sie nicht vorsichtig sind, kann
es dazu führen, dass die Dinge ein wenig schlammig sind und dass Sie etwas setzen, weil Sie wissen, dass alles letztlich in, wissen
Sie, letztendlich durch diese eine Klasse verfügbar ist, Sie könnten nicht so groß wie ein Stickler über das, was Sie in Service Vers setzen, was Sie in den Blick stellen. Sie müssen also sicherstellen, dass Sie sich in diesem Sinne organisiert und verstehen. Aber ich mag es, Zugriff auf die gesamte Menge von Methoden zu haben, die ich brauche, um, wenn ich damit arbeiten möchte. Also tun wir dies sowohl für wieder, Post und Kategorie. Also Kategorien Die gleiche Kategorie erweitert Kategorieansicht Kategorieansicht erweitert
Kategorie-Service und Kategorie-Service ist irgendwie von selbst, und so wieder, in Dienst, würden
Sie alle Ihre Art von Geschäftslogik setzen Interaktion mit Ihrer Datenbankklasse und so weiter, um all das einzuspielen. Ah, und das ist wieder sehr ähnlich wie das Modell im Blick. Wissen Sie, hier würden Sie alle Ihre Ansichten und Ihre Anzeige usw. überreichen, Ihre Formularformulare
erstellen und Ihre Formulare anzeigen. Und dann war Kategorie irgendwie dein Controller. Letztendlich werden wir die Funktionen haben, die, wenn irgendeine Art von Formulardaten übermittelt
wird ,alle Handler haben werden. , Und es wird mit Service interagieren, um die Daten in der Datenbank zu aktualisieren und so weiter. Okay, so ist das alles irgendwie kaputt. Das letzte, was Sie bemerken werden, ist, dass dies Service implementiert, und wenn wir uns die Kategorieansicht ansehen, erweitert und implementiert die Ansicht. Und wenn wir uns Post-Ansicht implementiert, anzeigen und Post Service implementiert Service. Beide Serviceklassen in Post und Kategorie implementieren also diese
Dienstschnittstelle , und beide Ansichtsklassen in Post und Kategorie implementieren diese Ansichtsschnittstelle, wo diejenigen genau
das ist, was das hier ist. Also haben wir Service und hier ist unsere Schnittstelle und Ansicht. Hier ist unsere Schnittstelle jetzt, ich habe das nur getan, um Ihnen zu zeigen, wie Sie diese Art von Sache machen und die
Schnittstelle verwenden könnten . Sie könnten nicht Ah, wissen
Sie, es ist nicht notwendigerweise notwendig, dass Sie dies tun, aber ist eine der Möglichkeiten, wie Menschen Schnittstellen verwenden würden, denn jetzt, wenn wir uns den Service ansehen, zum Beispiel
erstellen, erstellen, lesen, aktualisieren, löschen. Wenn Sie diese vier Methoden nicht in Ihrer Ihrer Klasse haben, diese
Schnittstelle zu implementieren , werden
Sie in Luft kommen. So gibt es Ihnen eine Guy Line in und Framework, für die Sie bauen können. Okay, das ist
also unsere Art von unseren Klassen hier. Die andere Sache ist, jetzt, weißt
du, wir fangen an, all diese Art von Sachen zu implementieren. Es ist wie, Okay, jetzt müssen wir uns damit beschäftigen, wie wir einbeziehen und verlangen und all diese Art von Sache. Also eine andere Sache, wenn wir nach Nano Nano kommen, ist wie unsere Meisterklasse, richtig? Es wird alle anderen Klassen aus unserer Bibliothek ziehen,
und tatsächlich,
eine Sache, die ich Ihnen zwei zeigen möchte, ist, wenn wir kommen, um Service und Post-Ansicht zu posten. Sehen Sie, ich habe Namen, Leerzeichen, App, Schrägstrich Bibliothek und hier habe ich Namen, Leerzeichen Schrägstrich Ah, Name sagt ab Schrägstrich Bibliothek. Es ist derselbe Namensraum. könntest du tun. Sie können denselben Namensraum für mehrere Dateien verwenden. Und in der Tat, wenn wir in die Kategorieansicht gehen, ist
es der gleiche Namensraum. Okay, also haben wir alle diese Klassen Spaced benannt. Und der Grund, warum ist, weil sie ziemlich Jim-generische Namen für diese Kategorien
Service verwendet haben. Also, wenn es andere Anwendungen gibt, haben
wir diesen Namen richtig verteilt, und es hilft nur. Irgendwie hilft uns geistig alles zu organisieren. Und so alle diese Klassen Kategorie Serve Category Service. Ah Kategorie Ansicht Kategorie Beitrag Ansicht Post Service Alle diese Luft in der gleichen ah Art von Namensraum. Also, wenn wir hier rüber zu unserer Nana Nano-Klasse gekommen sind, ist
das eine Art Meisterklasse. Das bringt alles zusammen. Dann habe ich hier ein paar Dinge getan, damit Sie sich hier ansehen und eine Vorstellung
von verschiedenen Wegen machen können. Sie können einige der Dinge verwenden, die Sie im Kurs gelernt haben. Also benötige ich unsere Konfliktdatei sehr schnell. Wenn Sie in diesen Konfliktordner gehen und unsere Konfliktdatei öffnen, sind
es nur unsere Datenbankdetails. Ich habe in dieser Luftberichterstattung hinzugefügt, um alle Bereiche zu zeigen, die Sie, natürlich,
wollen, um diese für die Produktion zu entfernen. Aber das ist ein Standard. Ah, Konfliktdateien waren einschließlich, die auch unsere Datenbank-Klasse hier enthalten. Und wenn wir diese ein wenig schließen, wenn wir schauen, haben
wir hier einen Datenbank-Punkt PHP. Nun, wieder, dies ist nur eine Art leere Container-Klasse. Aber hier haben Sie all Ihre gesamten Datenbanksachen abgelegt, und so habe ich irgendwie dieses kleine bisschen eingerichtet,
aber das wird aus unserer Konfliktdatei ziehen, so dass es nicht mit dem übereinstimmt, was in unserer Konfliktdatei ist. Es wird es in den Konstruktor übergeben. Und, wie ich, weißt
du, ich habe getan, ich weiß nicht, wie viele verschiedene Tutorials und so weiter zu Datenbankklassen, aber wieder, Sie müssen nicht Ihre eigenen erstellen verwenden. Sie können etwas verwenden, das da draußen ist, das Sie hier implementieren möchten. Aber der Punkt hier ist, dass es völlig in sich geschlossen ist. Es ist also seine eigene Sache. Es ist in
keiner der anderen Klassen integriert . Und so können die anderen Klassen es in einem modularen Sinne verwenden, und das wird wichtig. Und so einige der Dinge, die wir eine Sekunde hören werden, aber wieder hier in Nano wurden nur in dieser Datenbankdatei
benötigt, und dann machen wir unser SPL Auto Load Register. Dies macht es uns einfacher, alle verschiedenen Objekte und Sachen zu laden, die wir
in unserer Bibliothek haben . Dieser Auto-Loader ist ziemlich nur für die Bibliothek Zeug, und der Grund ist, dass wir Kategorie und Beiträge haben. Aber in einer echten Anwendung würden
Sie wahrscheinlich ein Post-Kategorie-Tag-Benutzer. Was auch immer noch da draußen ist, das du hinzufügen
kannst, du hast vielleicht 45 verschiedene Objekte, und für jeden, den du Pope haben wirst, wirst
du, du weißt schon,
die Variation von Post haben du weißt schon, . Wenn du einen Blick
hast, wirst du einen Service haben. Wenn Sie also fünf verschiedene Objekte haben und drei verschiedene Klassen haben, Sie am Ende 15 Klassen. Ein Autolader für diese Art macht also Sinn. Und so haben wir dieses Auto-Load-Register hier gemacht. Und was wir nennen, ist
aber keine Funktion. Es ist eigentlich eine statische Methode. Dies ist also eine Verwendung einer statischen Methode. Denken Sie daran, wie statische Methoden sind irgendwie ah, mit dem neuen Zeug, das wir mit Schnittstellen mit haben, ah, mit Schnittstellen und Namen, Gesicht und so weiter. Statische Klassenfunktionen und Methoden haben vielleicht nicht so viel Nutzen. Aber hier ist ein Szenario, in dem sie dio und das ist, dass wir es für eine Auto-Load-Methode verwenden können. Also, anstatt diese Funktion außerhalb unserer Klasse zu setzen, schwächen fiel direkt in unsere Klasse. Es braucht nichts aus unserer Klasse. Okay, also gibt es nichts, was es alles bekommt, von dem es braucht, von S p o SPL Auto
Load Register an es übergeben wird , so dass wir es zu einer statischen Funktion schwächen Referenz es so in unserer
Bezeichnung zu SPL Auto Load Register machen können . Und jetzt wird es diese statische Methode aufrufen. Es wird im Klassennamen übergeben, genau wie zuvor habe ich dir in der Lektion gezeigt, die ich beim automatischen Laden gemacht habe und jetzt können wir
unseren Code für unser automatisches Laden schreiben . Und im Wesentlichen
ist es, Dinge zu überprüfen. Also haben wir unser Objekt. Ah, wir haben unser Objekt. Klassen sind hier Objektordner. Wir könnten setzen, wir könnten einen Schnittstellenordner erstellen und dann Service und Ansicht in die Schnittstelle setzen . Ähm, und dann würden wir diese andere Aussage hier nicht brauchen. Wir müssten einige dieser Überprüfung nicht durchführen, aber ich wollte Ihnen nur zeigen, wie Sie Ihre automatische Ladung verwenden können,
um auf aber ich wollte Ihnen nur zeigen, wie Sie Ihre automatische Ladung verwenden können,
um aufverschiedene Arten zu
laden. Es muss also nicht so sein,
sondern nur das Standardformat. Und dann machen Sie Ihre, äh, Ordnerstruktur einfach mit ihr übereinstimmt. Du kannst es anders machen. Im Allgemeinen möchten
Sie etwas haben, das ein wenig einfacher ist und Ihre Ordnerstruktur dazu passt. Aber nochmal, ich will dir das nur zeigen. Also im Grunde, was dieser Code tut, ist, dass es irgendwie das ist, was wir vorher getan haben. Es bricht auseinander. Ah, wenn wir, wenn wir in Haltung acht. In dieser Instanz
haben wir momentan keine dieser Dateien aufgenommen, in die wir ihn nicht benötigt haben. Also wird es überprüfen. Uh, es wird diese automatische Ladung laden, weil sie sie nicht finden kann, und es wird in der Klasse passieren. Name wird. Der Klassenname ist ap Bac Schrägstrich Bibliothek Schwarzer Backslash Beiträge wurden diese
Zeichenfolge auseinanderbrechen und wir finden, wir wollen Post und das und das ist, was
hier als Objekt empfangen wird. Und wir wollen die Mappe. Es ist also in der Bibliothek. Und das ist es, was wir gleich hier bekommen. Und was wir tun, ist zu überprüfen, ob der Ordner. Also dieser Teil hier ist Bibliothek. Und der Grund, warum ich das getan habe, ist, weil es möglich wäre, dass Sie vielleicht einen anderen Ordner Ah direkt in Nano erstellen und ihn admin nennen und ah, beim Hinzufügen von Sachen da
drin könnte es verschiedene Möglichkeiten geben, Sie wollen das tun. Also habe ich das einfach reingesteckt. In diesem Fall befindet sich
alles in unserer Bibliotheksdatei, also ist dies ein bisschen redundant, aber es ist für Sie da zu sehen. Aber wir überprüfen, ob wir auf etwas aus der Bibliothek für Ordner zugreifen. Und dann überprüfen wir, ob wir dieses Array von Schnittstellen erstellt haben. Wenn das Objekt, das wir entweder als Service oder Ansicht erhalten. Wir wissen, dass es eine Schnittstelle ist, weil das
auch ist . Ah, genau
das sind diese beiden Schnittstellen. Ihre Namen, Service und dort namens View. Wir überprüfen also, ob es sich um eine Schnittstelle handelt. Und wenn es keine Schnittstelle ist, als wir wissen, ist
es einer dieser Objektordner. Also werden wir das Ende der Sie wissen,
die Objektstandarddatei benötigen , so dass diese Bezeichnung direkt hier laden würde, zum Beispiel, post op PHP. Dieser würde post view dot PHP laden und dieser würde post service dot PHP laden und dann wird
es, weil wir Instanz haben, sogar auf Kategorie bestehen. Es wird auch nach Kategorie suchen, und dann wird diese else-Anweisung im Grunde laden zwei Schnittstellen von Service und Ansicht, wenn es nicht in der Schnittstelle ist oder wenn es in der Schnittstelle ist, Wenn es sich um einen Dienst oder eine Ansicht handelt, dann werden wir Ich werde gerade das Objekt schnappen. Also, das ist ein bisschen, ich will nicht zu viel in das Unkraut von diesem bekommen, weil es
nicht so wichtig ist , wie Sie vielleicht denken. Und es ist ah, nein, das wird etwas sein, das Sie vielleicht ändern würden, basierend darauf, wie Sie Dinge machen möchten, aber der wichtige Punkt hier ist, dass ich in einem Format laden kann, in dem ich alle meine Klassen in einen Unterordner und lib und ich bin auch in der Lage, es zu laden, wo ich die Dateien direkt in den Live-Ordner wie folgt lege. Also mit Ihrem Auto-Loader, können
Sie mischen und passen und in der Lage sein, Thio Thio verwenden Bedingungen, um diese Art von Sache herauszufinden . Vielleicht willst du das nicht tun,
12. Nächste Schritte: Ich bin ehrlich, dass es nicht mehr gibt. Also online.com, so wenig Hauswirtschaft, um diesen Kurs zu beenden. Wenn Sie es noch nicht getan haben, sollten Sie unbedingt zum Klassenbereich gehen. Es gibt einen Unterrichtsabschnitt für
einige, einige Schritte, die Sie für diesen Kurs durchlaufen können. Stellen Sie also sicher, dass es sich unter der Diskussion auf der Registerkarte Projekte befindet, die Sie auf dem Kurs sehen werden. Außerdem, wenn Sie zu meinem Profil gehen, stellen Sie sicher, dass Sie mir ein Follow in meinem Profil
hier geben , damit Sie benachrichtigt werden, wenn ich neue Kurse veröffentliche. Und ich habe auch eine laufende Art von wöchentlichen Podcast-Style-Kurs namens Let's Talk freiberuflich. Also, wenn Sie gerne Zugang zu laufenden Schulungen in Bezug auf Freiberufler und Online-Geschäft und so weiter haben möchten. Achten Sie darauf, das zu überprüfen. Lassen Sie uns auch freischaffende Kurse sprechen. Und schließlich habe ich einen täglichen Tipps-Newsletter auf meiner Website bei John Morris online.com. Wenn du dort drüben
gehst, kannst du dich für diese Mailingliste anmelden. Sie werden auch in meine eigene, meine ganz eigene mobile App, oder Sie erhalten Zugriff auf über 78 Stunden kostenlose Inhalte zum Zeitpunkt dieser Aufnahme in Bezug auf freiberufliche und so weiter. Also, wenn Sie daran interessiert sind, BD sicher, dass auch überprüfen. Wieder, das ist John Morris online.com. In Ordnung. Danke, dass Sie den Kurs genommen haben. Wenn es dir gefallen hat, schätze ich dich für dich. Hinterlassen Sie mir eine Rezension und wir sehen uns im nächsten Kurs.