Habe es dann auch geschafft ganz zu gucken, wieder ein gutes Video, vielen Dank. Planst du deinen SRC Ordner später noch aufzuräumen, weil hier vermischt du ja allgemeine Ordner wie Entity und Repository mit Ordner für die verschiedenen Controller wie aktuell Registration. Wenn es dann mehr davon werden, wäre mir der src Ordner glaube zu unübersichtlich
Hi ne, der src Ordner bleibt so wie er ist. Das ist heut zu Tage ganz normal dass man sich nur im SRC Ordner zu Recht findet. Es wäre eher unübersichtlicher wenn es mehrere Ordner gibt, denn dann müsste man immer wieder mit der composer.json abgleichen und schauen ob der Order eingebunden wird oder ob da einfach nur irgendwelche Klassen liegen.
Ich habe zuletzt PHP 4 verwendet - ohne jeglichen OOP-Anteil. Ich bin froh um eine detaillierte Erklärung des Grundsystems! Jeder Versuch mich in MVC einzuarbeiten haben in der Vergangenheit jedesmal gescheitert, da ich solch (für mich) unlogische Sachen wie Model extends DBHandler einfach nicht verstehen will. Früher hatte man in vielen CMS-Frameworks immer einen Plugin Ordner. In diesem wurde die komplette Logik, View und Sprache zu diesem Plugin platziert. Warum wird das heutzutage nicht mehr so eingeteilt? Also quasi User/View/*, User/Lang,/*, User/Action.
Extends DBHandler ist ja sowieso falsch. Früher wurde die Ableitung falsch verwenden in diesem Zusammenhang. Heut zu Tage nutzen wir Depdenency INjection. Das heißt der DB Handler würde via Constructor an eine Klasse übergeben und es wird nicht abgeleitet. Zu den Ordnern Genauso mach ich es ja auch. Nur ist "User" viel zu grob beschrieben. Deshalb unterteile ich auf Einzelne "Features" auf. Dann kann man bei bedarf einzelne Funktionalitäten einfach löschen und man hat eine Übersicht was der Code kann.
Definieren des strict typings im PHP header geht unter PHPStorm etwas einfacher, wenn man über Settings -> Editor -> File and Code Template -> Includes -> PHP File header einfach "declare(strict_types=1);" einträgt. In den PHP File Template wird dann das Template durch #parse("PHP File Header.php") eingefügt. So muss man bei Anpassungen nicht immer wieder über alle PHP Templates (PHP File, PHP Class usw.) rutschen. Ansonsten, top Tutorial. Danke dafür! :)
Schönes Tutorial. Ich bin begeistert, dass bisher alles reibungslos geklappt hat, bis zu dem Fehler mit der fehlenden Klasse. Ich bekomme es nicht in den Griff und kann demnach nicht weitermachen. Ich bin bei Minute 13:30 und habe alles x-mal durchgesehen. Ich habe die richtigen Namespaces, die richtigen Uses, aber es will nicht funktionieren. Was muss ich dir mal zukommen lassen, damit du das mal ansehen kannst.. Ich würde nämlich liebend gerne weitermachen mit dem Projekt. Grüße Kigh....
@@VitalijMik Alles durchgegangen, ich hab danach alles auf meinem Rechner zurück gesetzt und starte das Tut nochmal... Wenn mir noch was auffällt, dann meckere ich ^^
Schade, dass ich nicht ganz auf deinem Level bin, aber das Projekt bleibt einer der interessanten im Netz. Hast mich also sicher. Ich werde derweil schon Mal eine private Suchmaschine anlegen und versuchen die mit AI zu koppeln wenn ich's schaff.
Hi vitalij, erstmals danke für die tolle Projektidee und deine Umsetzung mit deinen Gedanken hierzu. Ich habe zwar viel Erfahrung im runterscripten von kleinen Programmen, aber weniger mit vernünftiger Struktur bzw. Design. Was für mich etwas unlogisch ist, ist die Verwendung von 2 PHP Dateien außerhalb des src Ordners. Verschiebst du diese noch oder ist es so auch OK?
Hi dankeschön, also aktuell ist es nicht geplannt diese zu entfernen, aber ich werde mir noch was überlegen. ich habe schon beim code style fixer gemerkt dass diese nicht berücksichtig werden weil die außerhalb von source liegen. auf jeden fall muss hier noch was getan werden, ich muss mir dazu genug gedanken machen :D
Ich habe hier mal eine Frage.. Ich schreibe selber eine API für ein Netzwerk, mache jedoch alles komplett anders. Mein Server hat eine normale Ordnerstruktur und darin befinden sich immer PHP Dateien, die die Anfrage Aufnehmen, verarbeiten und dann ein Response ausspucken. Die Route ist quasi in Unterordnern. Das Frontend ( Smartphone ) kennt diese Routen und spricht sie immer direkt an Hand der Anfrageart an. Ist das Falsch wie ich das mache ? Ich habe zwar Grundkenntnisse in PHP und so wie ich die API schreibe reichen diese auch aus, jedoch verstehe ich in deinem Video absolut garn nichts, obwohl du immer sehr gut erklärst.
Mit einer Ordersturktur kann man das natürlich auch umsetzen. Es gibt in der Programmierung nicht wirklich ein richtig oder falsch. Das Problem bei ordnern ist, dass oft zwischen Public und nicht public nicht getrennt wird. Dadurch landen gerne mal Dateien wie composer.json etc im public verzeichnis. Wenn man dann die Datei aufruft, sieht man genau welche Packages das Projekt installiert hat und in welcher version. Das könnte dann zu Sicherheitsproblemen führen. Besser ist es ein Public ordner zu haben und dort nur die PHP Dateien ablegen die über URL aufrufbar sein sollen. alles andere kommt außerhalb von Public und wird demensprechend included. Wenn du viele dateien dann im Public hast, hast du das Problem dass wenn eine Funktionalität dazu kommt die alle URLs betrifft (zb prüfen ob man eingeloggt ist) dann musst du das in allen dateien anpassen. Über einen Zentralisierten Router kann man viel einfacher dinge dazu programmieren. Ich habe auch auf meinem Kanal ein video zum Router. Da gibt es auch einen code. ich denke ein Router ist viel besser als viele Dateien mit orderstruktur
Dankeschön, für deine sehr ausführliche Antwort, sie war sehr hilfreich. Das es eigentlich kein richtig oder falsch gibt, habe ich schon oft gehört, da schließlich viele verschiedene Wege zum gleichen Ziel führen können. Ich weiß aber auch, dass es Wege gibt, bei denen jeder professionelle Programmierer ( wie du ) die Hände über den Kopf schlagen würden, weil sie viele Risiken mit sich bringen und es erst vielleicht einfach erscheint, am Ende aber die komplizierteste Methode ist. Ich werde mich mal ein bisschen mehr in deinen Videos schulen und hoffe ein besseres Verständnis zu bekommen. Ich glaube vielen ist garnicht klar, welche Risiken eine gefährliches Halbwissen mit sich bringen kann, z.B. ein Datenleak im eigenen Sozialen Netzwerk zum Thema Schadensersatz etc. Nochmals danke für deine Antwort und vor allem für deine hochwertigen Videos. ❤
@joniskotv gerne. Ich habe übrigens auch ein Video für typische Sicherheitslücken auf meinem Kanal und ein Video wo ich erzähle wieso mein Code 2012 gehackt wurde und das ganze sogar auf heise veröffentlicht wurde. Die Probleme habe ich leider selbst erfahren wegen meinem damaligen Halbwissen
Code ist in der Videobeschreibung verlinkt
Habe es dann auch geschafft ganz zu gucken, wieder ein gutes Video, vielen Dank. Planst du deinen SRC Ordner später noch aufzuräumen, weil hier vermischt du ja allgemeine Ordner wie Entity und Repository mit Ordner für die verschiedenen Controller wie aktuell Registration. Wenn es dann mehr davon werden, wäre mir der src Ordner glaube zu unübersichtlich
Hi ne, der src Ordner bleibt so wie er ist. Das ist heut zu Tage ganz normal dass man sich nur im SRC Ordner zu Recht findet. Es wäre eher unübersichtlicher wenn es mehrere Ordner gibt, denn dann müsste man immer wieder mit der composer.json abgleichen und schauen ob der Order eingebunden wird oder ob da einfach nur irgendwelche Klassen liegen.
Ich habe zuletzt PHP 4 verwendet - ohne jeglichen OOP-Anteil. Ich bin froh um eine detaillierte Erklärung des Grundsystems! Jeder Versuch mich in MVC einzuarbeiten haben in der Vergangenheit jedesmal gescheitert, da ich solch (für mich) unlogische Sachen wie Model extends DBHandler einfach nicht verstehen will.
Früher hatte man in vielen CMS-Frameworks immer einen Plugin Ordner. In diesem wurde die komplette Logik, View und Sprache zu diesem Plugin platziert. Warum wird das heutzutage nicht mehr so eingeteilt? Also quasi User/View/*, User/Lang,/*, User/Action.
Extends DBHandler ist ja sowieso falsch. Früher wurde die Ableitung falsch verwenden in diesem Zusammenhang. Heut zu Tage nutzen wir Depdenency INjection. Das heißt der DB Handler würde via Constructor an eine Klasse übergeben und es wird nicht abgeleitet.
Zu den Ordnern
Genauso mach ich es ja auch. Nur ist "User" viel zu grob beschrieben. Deshalb unterteile ich auf Einzelne "Features" auf. Dann kann man bei bedarf einzelne Funktionalitäten einfach löschen und man hat eine Übersicht was der Code kann.
Definieren des strict typings im PHP header geht unter PHPStorm etwas einfacher, wenn man über Settings -> Editor -> File and Code Template -> Includes -> PHP File header einfach "declare(strict_types=1);" einträgt.
In den PHP File Template wird dann das Template durch #parse("PHP File Header.php") eingefügt. So muss man bei Anpassungen nicht immer wieder über alle PHP Templates (PHP File, PHP Class usw.) rutschen.
Ansonsten, top Tutorial. Danke dafür! :)
Dankeschön, habe es auch umgesetzt, nur halt nicht in diesem projekt konfiguriert, ist jetzt aber auch drinne
Schönes Tutorial. Ich bin begeistert, dass bisher alles reibungslos geklappt hat, bis zu dem Fehler mit der fehlenden Klasse. Ich bekomme es nicht in den Griff und kann demnach nicht weitermachen. Ich bin bei Minute 13:30 und habe alles x-mal durchgesehen. Ich habe die richtigen Namespaces, die richtigen Uses, aber es will nicht funktionieren. Was muss ich dir mal zukommen lassen, damit du das mal ansehen kannst.. Ich würde nämlich liebend gerne weitermachen mit dem Projekt.
Grüße
Kigh....
Dankeschön, in der Videobeschreibung gibt es den Link zum Quellcode eventuell kannst du es mal vergleichen? Vielleicht findest du da was?
@@VitalijMik Alles durchgegangen, ich hab danach alles auf meinem Rechner zurück gesetzt und starte das Tut nochmal... Wenn mir noch was auffällt, dann meckere ich ^^
Soo, beim zweiten Versuch habe ICH keine Fehlermeldung wie Du erhalten :D
Weiß der Geier, was ich da "richtig" gemacht habe ;)
Neustart hilft immer ;)
Schade, dass ich nicht ganz auf deinem Level bin, aber das Projekt bleibt einer der interessanten im Netz. Hast mich also sicher. Ich werde derweil schon Mal eine private Suchmaschine anlegen und versuchen die mit AI zu koppeln wenn ich's schaff.
mein "level" ist gar net so hoch. ich erstelle einfach nur klassen und interfaces dazu ;)
Hi vitalij,
erstmals danke für die tolle Projektidee und deine Umsetzung mit deinen Gedanken hierzu. Ich habe zwar viel Erfahrung im runterscripten von kleinen Programmen, aber weniger mit vernünftiger Struktur bzw. Design. Was für mich etwas unlogisch ist, ist die Verwendung von 2 PHP Dateien außerhalb des src Ordners. Verschiebst du diese noch oder ist es so auch OK?
Hi dankeschön, also aktuell ist es nicht geplannt diese zu entfernen, aber ich werde mir noch was überlegen. ich habe schon beim code style fixer gemerkt dass diese nicht berücksichtig werden weil die außerhalb von source liegen.
auf jeden fall muss hier noch was getan werden, ich muss mir dazu genug gedanken machen :D
Ich habe hier mal eine Frage.. Ich schreibe selber eine API für ein Netzwerk, mache jedoch alles komplett anders. Mein Server hat eine normale Ordnerstruktur und darin befinden sich immer PHP Dateien, die die Anfrage Aufnehmen, verarbeiten und dann ein Response ausspucken. Die Route ist quasi in Unterordnern. Das Frontend ( Smartphone ) kennt diese Routen und spricht sie immer direkt an Hand der Anfrageart an. Ist das Falsch wie ich das mache ? Ich habe zwar Grundkenntnisse in PHP und so wie ich die API schreibe reichen diese auch aus, jedoch verstehe ich in deinem Video absolut garn nichts, obwohl du immer sehr gut erklärst.
Mit einer Ordersturktur kann man das natürlich auch umsetzen. Es gibt in der Programmierung nicht wirklich ein richtig oder falsch. Das Problem bei ordnern ist, dass oft zwischen Public und nicht public nicht getrennt wird. Dadurch landen gerne mal Dateien wie composer.json etc im public verzeichnis. Wenn man dann die Datei aufruft, sieht man genau welche Packages das Projekt installiert hat und in welcher version. Das könnte dann zu Sicherheitsproblemen führen.
Besser ist es ein Public ordner zu haben und dort nur die PHP Dateien ablegen die über URL aufrufbar sein sollen. alles andere kommt außerhalb von Public und wird demensprechend included.
Wenn du viele dateien dann im Public hast, hast du das Problem dass wenn eine Funktionalität dazu kommt die alle URLs betrifft (zb prüfen ob man eingeloggt ist) dann musst du das in allen dateien anpassen. Über einen Zentralisierten Router kann man viel einfacher dinge dazu programmieren.
Ich habe auch auf meinem Kanal ein video zum Router. Da gibt es auch einen code. ich denke ein Router ist viel besser als viele Dateien mit orderstruktur
Dankeschön, für deine sehr ausführliche Antwort, sie war sehr hilfreich.
Das es eigentlich kein richtig oder falsch gibt, habe ich schon oft gehört, da schließlich viele verschiedene Wege zum gleichen Ziel führen können. Ich weiß aber auch, dass es Wege gibt, bei denen jeder professionelle Programmierer ( wie du ) die Hände über den Kopf schlagen würden, weil sie viele Risiken mit sich bringen und es erst vielleicht einfach erscheint, am Ende aber die komplizierteste Methode ist. Ich werde mich mal ein bisschen mehr in deinen Videos schulen und hoffe ein besseres Verständnis zu bekommen. Ich glaube vielen ist garnicht klar, welche Risiken eine gefährliches Halbwissen mit sich bringen kann, z.B. ein Datenleak im eigenen Sozialen Netzwerk zum Thema Schadensersatz etc.
Nochmals danke für deine Antwort und vor allem für deine hochwertigen Videos. ❤
@joniskotv gerne. Ich habe übrigens auch ein Video für typische Sicherheitslücken auf meinem Kanal und ein Video wo ich erzähle wieso mein Code 2012 gehackt wurde und das ganze sogar auf heise veröffentlicht wurde. Die Probleme habe ich leider selbst erfahren wegen meinem damaligen Halbwissen