Einführung in das Symfony PHP Framework mit einem Beispiel Projekt

Поделиться
HTML-код
  • Опубликовано: 15 ноя 2024

Комментарии • 145

  • @VitalijMik
    @VitalijMik  2 года назад +6

    Was soll als nächstes kommen?
    Hier eine Liste
    - Laravel Gästebuch
    - Laminas Gästebuch
    - Nette Gästebuch
    - Apache Solr Suchmachine
    - Erweiterte PHPUnit Tests
    - Lokale Domains mit Docker Setup

    • @RoBert-nb5gm
      @RoBert-nb5gm 2 года назад +7

      1. Erweiterte PHPUnit Tests
      2.Lokale Domains mit Docker Setup
      3.Laminas Gästebuch
      Daumen hoch für Vitalij
      Super Video

    • @anonanonym3678
      @anonanonym3678 2 года назад +4

      Bin auch für erweiterte unit tests als nächstes 🙂

    • @VitalijMik
      @VitalijMik  2 года назад +1

      @@anonanonym3678 ich hoffe ihr habt da nicht zu hohe Anforderungen :D

    • @moroliu2845
      @moroliu2845 2 года назад +5

      Mehr symfony ♡

    • @anonanonym3678
      @anonanonym3678 2 года назад +1

      @@VitalijMik du machst das schon 🙂 dein Content ist bisher immer interessant gewesen

  • @beewulf890
    @beewulf890 Год назад +1

    Danke für das Tutorial!!! Super, dass es solche Videos gibt!

  • @heinrichschiller4673
    @heinrichschiller4673 2 года назад +2

    Sehr schön! Ich beschäftige mich auch mit Symfony und kann dein Video jetzt gut gebrauchen :) Vielen Dank dafür!

    • @VitalijMik
      @VitalijMik  2 года назад

      dankeschön, dann viel spaß damit

  • @Devytef
    @Devytef Год назад +1

    Danke für das Video! War ein toller Einblick in die Möglichkeiten von Symfony, wenn man es noch nicht kennt :) Bisher war Slim eher meine Welt.

    • @VitalijMik
      @VitalijMik  Год назад

      Dankeschön. Im Grunde sind ja eh alle frameworks gleich. Beim router hätte man zum Beispiel die Routen in eine Konfig auslagern können, dann wäre es schon Slim ähnlicher

  • @AsimYilan
    @AsimYilan 2 года назад +2

    habe einen like dar gelassen wobei ich immer noch zum nativen Umsetzung tendiere. Danke trotzdem für den Einblick in einen Framework

    • @VitalijMik
      @VitalijMik  Год назад

      wenn man Geld mit PHP verdienen will, kommt man kaum herum um ein Framework ;)

    • @AsimYilan
      @AsimYilan Год назад

      @@VitalijMik naja, mein größter verdienst war 40k mit php ohne Framework. Dabei habe ich auch nur 2٪ auf javascript gesetzt. Auch Version und Update Probleme gibt es nicht. Deswegen bleibe ich immer noch bei nativ. Das heißt nicht das ich deine Videos nicht gern gucke, ganz im Gegenteil ich schaue es mir sehr gerne an

    • @VitalijMik
      @VitalijMik  Год назад +1

      @@AsimYilan das Freut mich für dich. Meine Aussage war darauf bezogen, dass wenn du einen Job als PHP Entwickler suchst, wird es von 80% der Stellenausschreibungen verlangt dass man Laravel/Symfony/Laminas kennt.

    • @AsimYilan
      @AsimYilan Год назад

      @@VitalijMik das stimmt allerdings. Zu was würdest du dann eher tendieren. Ich selbst würde dann eher zu Laravel meine Entscheidung fällen aber deine Meinung ist mir sehr wichtig

    • @VitalijMik
      @VitalijMik  Год назад +1

      @@AsimYilan ich finde laravel ist nicht so gut aufgebaut mit diesen klassen wo man die statischen methoden dazu aufrufen muss. Ich bin echt kein Fan davon hinter einer Klasse ganz viele aufrufe zu verstecken. Ich bin eher Symfony/Laminas developer.

  • @clickadelic7681
    @clickadelic7681 2 года назад +2

    Danke, danke, danke - soooo passend vom Zeitpunkt. Könnte nicht besser sein.

    • @VitalijMik
      @VitalijMik  2 года назад +1

      :D bist schon der Zweite? Ich frage mich warum? :D

    • @clickadelic7681
      @clickadelic7681 2 года назад +1

      @@VitalijMik 😁Custom Apps sind hoch im Kurs, Laravell und Symfony sind einfach gefragt.

    • @VitalijMik
      @VitalijMik  2 года назад

      Was sind denn custom Apps? :D

  • @whynotofc
    @whynotofc 2 года назад +1

    Super Video! danke - bin gerade an Symfony dran und hatte schon mit 4 und 5 bissi gearbeitet und aus "Frust" immer wieder abgebrochen. Aber jetzt bin ich wieder motiviert weiter zu machen!

  • @Tsugis
    @Tsugis 3 месяца назад +1

    Ein super Video und sehr informativ, schade das es keine weiteren Videos zu Symfony gab 😕

    • @VitalijMik
      @VitalijMik  3 месяца назад +1

      ja leider gibts da nicht mehr so viele themen zu symfony außer dann auf die einzelnen bundles einzugehen und die zu erklären

  • @Dr.Ecksack
    @Dr.Ecksack 2 года назад +1

    Gerade leider keine Zeit dafür, aber kommt auf jeden fall auf die todo Liste! Freu mich auf das Video 👍

    • @VitalijMik
      @VitalijMik  2 года назад +1

      Ja kein Problem, verschwindet ja nicht ;)

  • @NeverCodeAlone
    @NeverCodeAlone Год назад +3

    Danke für deinen Einsatz!!

    • @VitalijMik
      @VitalijMik  Год назад +1

      dankeschön, dir auch für deinen Einsatz bei deinen videos ;)

  • @krisskrosskrasskrazy3870
    @krisskrosskrasskrazy3870 2 года назад +1

    Hallo Vitalij,
    erstmal vielen Dank für all die Videos!!!
    Wollte das Tutorial direkt reproduzieren, aber leider bekomme ich nach "ddev start" diese Fehlermeldung:
    Starting sf-guestbook...
    Pushed mkcert rootca certs to ddev-global-cache/mkcert
    Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /run/desktop/mnt/host/uC/wsl$/Debian/home/...
    Weisst du, oder ein:e andere:r Leser:in, was das Problem sein könnte bzw. wie ich es lösen kann?
    Danke vorab!

    • @krisskrosskrasskrazy3870
      @krisskrosskrasskrazy3870 2 года назад +1

      sorry, habs selber gefunden. der docker container war nicht gestartet!!!

    • @VitalijMik
      @VitalijMik  2 года назад

      Dein Pfad ist komisch, hast du Docker desktop installiert? wurde es gestartet? Der Fehler bei dir kommt daher weil entweder WSL nicht hochgefahren wurde oder Docker nicht gestartet ist.
      Kannst du denn auf den WSL Ordner zugreifen? Hast du WSL Version 2 konfiguriert ?

  • @Meinungsmacher
    @Meinungsmacher 2 года назад +1

    Sehr cool, hab leider noch keine Zeit gefunden das Video komplett zu sehen, aber das werd ich heute Nachholen :) Als nächstes Fänd cih das Laravel Gästebuch spannend, aber auch hauptsächlich weil ich mich damit gerade mehr Beschäftige.

    • @VitalijMik
      @VitalijMik  2 года назад +1

      Laravel könnte man danach gegenüber stellen und vergleichen. Ich habe das Gefühl dass laravel eher an neue Entwickler gerichtet ist. Man hat eine geringere Einstiegshürde um Projekte umzusetzen als wie es bei Symfony der Fall ist. Dafür ist Symonfy eher für Erfahrene Entwickler ausgelegt wo die SOftware 5-10 Jahre laufen soll und erweitert werden soll. Es ist nur ein "Gefühl" muss dazu noch laravel in der Praxis anweden und schauen

    • @Meinungsmacher
      @Meinungsmacher 2 года назад +1

      @@VitalijMik Ich muss sagen ich hab mich bei der Frameworkwahl unter anderem sogar mal danach gerichtet was bei Jobangeboten mehr gefragt wird - da schein Laravel etwas gefragter zu sein.

    • @VitalijMik
      @VitalijMik  2 года назад

      @@Meinungsmacher kommt drauf an in welcher bubble man ist. In meiner bubble wird symfony mehr gefragt. Arbeite im Shopware Umfeld

    • @VitalijMik
      @VitalijMik  2 года назад +1

      @@Meinungsmacher ich habe kurz auf Indeed nach Laravel und Symfony geschaut, für Symfony gibt es über 2k Jobs und für Laravel 1,4k
      Woher hast du deine Information her dass Laravel gefragter ist?

  • @florianmertens2431
    @florianmertens2431 2 года назад +1

    1,5h Video, so geht es hier also weiter, das wird glaube interessant.
    Symfony ist super, wobei du hier ja auch einen RUclips Kanal in deinen Kanälen hast der das auch sehr gut macht, ich werde mir das Video aber trotzdem ansehen, da man immer wieder was neues lernen kann.
    Von deiner Liste wäre ich bei den nächsten Sachen auch bei den Unit Tests

    • @VitalijMik
      @VitalijMik  2 года назад

      Okay dann unit Tests, zu viele wollten es sehen:D

  • @mtbtelevision9363
    @mtbtelevision9363 11 месяцев назад +1

    Sehr schön. Vielen Dank!

  • @MrLion22
    @MrLion22 2 года назад +2

    Super Video und danke für deine Mühe. Es wäre schön, wenn hierzu ein 2. Teil kommt, wo man z.B. eine 2. Tabelle in der DB definiert und diese dann mit der 1. Tabelle 1:n verknüpft.

    • @VitalijMik
      @VitalijMik  2 года назад +1

      gibt es schon ruclips.net/video/KCY3l-Gilck/видео.html

    • @MrLion22
      @MrLion22 2 года назад

      @@VitalijMik Wow super danke dir.

  • @KighlanderXL
    @KighlanderXL 7 месяцев назад

    Super Anfänger-Tutorial. Aber zwei Sachen hab ich dennoch: ich habe das Tutorial mit Symfony 7 gemacht, da gab es die Methode "renderForm" nicht, es wurde lediglich weiter "render" benutzt.
    Das zweite, und das finde ich in der heutigen Zeit deutlich Wichtiger: Das Einbinden von Bootstrap & Co.
    Gerade weil die DSGVO so penibel geworden ist, hätte ich mir dennoch gewünscht, dass man sieht, wie das lokal eingebunden wird.
    Ansonsten: für das erste mal mit Symfony war es ein absolut klasse Tutorial. Wünschenswert wäre noch ein Tutorial, wie man ein sicheres Login-Script erstellt/nutzt...

  • @moroliu2845
    @moroliu2845 2 года назад +1

    Als ob du meine Gedanken gelesen hast. Ich arbeite mich aktuell in Symfony ein :D

    • @VitalijMik
      @VitalijMik  2 года назад

      Zufälle gibt, dann viel Spaß mit dem Video, aber mach ruhig eine Pause zwischen durch ;)

  • @calle90
    @calle90 Год назад +1

    Wie sieht das eigentlich mit den Lizenzen aus für die Mail Erweiterungen zur Erstellung von Kontakformularen wie sympfony und phpmailer sowie den composer. Kann man das alles einfach kommerziell nutzen? Immerhin läd man ja bei github ne Menge Script herunter bezugnehmend auf phpmailer.

    • @VitalijMik
      @VitalijMik  Год назад +1

      Korrekt du kannst es einfach so kommerziell nutzen, deshalb ist ja Symfony so weit verbreitet. Es steht alles unter MIT Lizens.
      symfony.com/doc/current/contributing/code/license.html

  • @knufflpuffl
    @knufflpuffl Год назад +1

    Danke für das Tutorial. Aus irgendeinem Grund funktionieren meine Form Asserts nicht - kann das an der Symfony Vesion liegen?

    • @VitalijMik
      @VitalijMik  Год назад

      HI danke für das Kommentar, allerdings kann ich nicht genauer sagen obs an Symfony Liegt oder ob es am Code liegt. Ich müsste sehen was du da gemacht hast um es genauer zu sagen

    • @knufflpuffl
      @knufflpuffl Год назад +1

      @@VitalijMikich werds einfach noch Mal von Anfang weg machen, hab bestimmt irgendwas vergessen

  • @AndreRohlf
    @AndreRohlf Год назад +1

    Hey, vielen dank für dein Video. Es ist zwar bereits 1 Jahr alt, wenn man aber alles von Hand schreibt und sich den Bedingungen anpasst, funktioniert das Gästebuch. Ich habe auch bereits deine Hausaufgabe :-) erledigt. Um nun noch mehr zu lernen, wollte ich die Löschen Funktion der Einträge erstellen. Da hänge ich nun... Google hilft da auch nur schlecht, liegt wohl an meinen Fragen ^^.
    Ich bekomme immer die Exception das die Form bereits gerendert wurde. Logisch... aber wie verhindere ich es und kann zu jedem Eintrag einen Löschen Button mittels den Formbuilder hinzufügen. Dieser benötigt ja die ID des Eintrages. Einen einzelnen Button mit der Form bekomme ich hin. Ich bekomme auch die ID vom GuestBookEntity Objekt. Damit kann ich dann auch was löschen, wie das geht - habe ich bereits herausgefunden. Hast du da mal einen Tip für mich, oder würdest du sogar die Serie Fortführen ?

    • @VitalijMik
      @VitalijMik  Год назад +1

      Hey danke für das Kommentar.
      Also wenn du die Einträge anzeigst, dann kannst du ein kleines extra delete formular anzeigen. du kannst formulare mit daten aus der db vorab laden und dieses delete formular müsstest du dann mit der ID des eintrages generieren, dazu empfiehlt es sich einen hidden field zu benutzen. für das löschen gibts dann einen eigenen controller.
      Um dir aber genauer zu helfen, müsste ich deinen code kennen.
      viele grüße

    • @AndreRohlf
      @AndreRohlf Год назад

      @@VitalijMik krass, ich hatte heute morgen geantwortet. Bevor ich das jetzt nochmal schreibe möchte ich mich vergewissern ob es eventuell gelöscht wurde? Es war ein link von einem github Repository drinne.

  • @lukasoify
    @lukasoify 7 месяцев назад

    Mega Beschreibung Danke

  • @Minimalte
    @Minimalte 2 года назад +2

    Ich möchte mich hier auch mal für deine Arbeit und Videos bedanken 💪👍
    Diese haben mir in letzter Zeit an viel Stellen weiter geholfen. 👍
    Ich arbeite seit ca. 3 Monaten an einer Web-Applikation, nach ca. 1,5 Monaten habe ich alles über Bord geworfen und mit Symfony noch mal bei 0 angefangen.
    Auch wenn ich inzwischen schon viele Funktionen von Symfony selbst angewandt habe, werde ich mir diese Video auf jeden Fall noch zu Ende anschauen. 😉
    Da es doch immer wieder vorkommt, das ich mich frage:
    ist meine Lösung wirklich "richtig" so. Oder hatten die Symfony Entwickler für jene Aufgabenstellung doch eine andere Lösung vorgesehen, 😅😅🙈
    Was mich ansonsten noch ziemlich interessieren würde, wäre das Asynchrone verarbeiten von Messages 🤔
    Habe diese bis jetzt nur Synchron in Verwendung,
    Aber ich denke Google wird mir da noch die fehlenden "Erleuchtung" bringen 😅😂😉
    Also wie gesagt vielen Dank für deine Arbeit,
    Ich freue mich schon auf die nächsten Videos. 💪👍☺️
    Beste Grüße,
    Nils

    • @VitalijMik
      @VitalijMik  2 года назад +1

      Vielen dank für dein Kommentar und viel Erfolg bei deinen Projekten.
      Ja wenn du asynchrone Messages verarbeiten willst, brauchst du enqueue von Symfony. Dazu könnte ich aber auch so ein Stündiges Video drehen;)
      Danke für den Hinweis.
      Viele Grüße

    • @Minimalte
      @Minimalte 2 года назад +1

      @@VitalijMik
      Danke für deine Antwort 👍
      Ich würde mich über ein Video zu dem Thema sehr freuen.
      Aber das ist ja glaube ich schon ein etwas speziellerer Punkt. 😅🙈
      Also auch weitere Videos generell zum Thema Symfony würden ich auch sehr spannend finden. 👍😉

    • @MrLion22
      @MrLion22 2 года назад

      @@VitalijMik Dieses Video würde mich auch sehr interessieren ;-)

  • @barneysmith
    @barneysmith 2 года назад +1

    super video. tests für diese Applikation wären super. in welchem Verzeichnis lege ich am besten helferklassen ab. kann ich die pagination so implementieren, dass ich sie generell in der symfony app verwenden kann? wie könnte man das formular auf ajax umstellen? gibt es sowas ähnliches wie laravel livewire für symfony?

    • @VitalijMik
      @VitalijMik  2 года назад

      Am einfachsten wäre es die Tests im Root Ordner abzulegen, weil dann ist deine phpunit.xml klein aufgebaut.
      Pagniation generell verwenden, joa du könntest ein Trait erstellen der den Offset Berechnet und diesen dann in jedes repository hinterlegen.
      formular auf ajax umstellen, dazu musst du im javascript an den Form Submit event hören und da das absenden unterbrechen und die URL des formulars via ajax versenden. Das habe ich in meinem Chat video gemacht: github.com/BlackScorp/chat/blob/main/index.php#L77-L101
      Livewire für Symfony gibt es nicht, so wie ich es verstanden habe, ist es eine PHP Seitige Implementierung von VueJS, ich weiß nicht ob es einen großen vorteil bringt, man könne auch direkt vueJS benutzen.

    • @barneysmith
      @barneysmith 2 года назад

      @@VitalijMik wow, eine sehr umfassende antwort, vielen lieben dank dafür. ich habe ein tutorial für livewire mal angesehen. du kannst damit von laravel aus sehr einfach dynamisch formulare bauen, mit php. das entsprechende JS wird automatisch generiert.

  • @Rockodona
    @Rockodona 2 года назад +2

    Hey Vitalij erstmal danke für das tolle Video! Hast du auch vor ein bezahlten Kurs für Symfony zu machen (Udemy)?
    Alles was an Symfony Kursen finde auf Udemy sind wirklich nicht überzeugend für mich, denke im Deutsch sprachigen Raum wäre ein Kurs mit deinen Lehrskills echt ne Oase! Keep it up, vielleicht ein erweiterter deep dive in symfony wäre für mich interessant.
    Cheers!

    • @VitalijMik
      @VitalijMik  2 года назад +2

      Hi also bezahlte Kurse bei Udemy würde ich nicht machen, die werden viel zu oft geklaut, da biete ich lieber den Kurs an sich kostenlos an aber die Materialien dazu dann gegen eine Kleinigkeit. Deep Dive in Symfony da müsste ich mir das genauer überlegen wie, weil an sich ist symfony jetzt nicht so schwer, die schwierigen Sachen betreffen meistens die Applikation die man selbst bauen will.
      Man könnte vielleicht auf einzelne Packages von Symfony eingehen wie Message Queue oder so. Wie gesagt ich überlege mir da noch was

    • @Rockodona
      @Rockodona 2 года назад +1

      @@VitalijMik Verstehe, ja da finde ich dann deine Idee mit bezahlten Materialien auch sinniger. Falls ein deep dive sich nicht ergänzt, eventuell Rest APIs mit symfony und was für Vorteile oder Nachteile es mit anderen Technologien hat.

    • @GGGGGGGGGG96
      @GGGGGGGGGG96 2 года назад +2

      @@Rockodona Für ein deep dive in Syfmony kann ich Symfoncasts sehr empfehlen! Hoffe es ist nicht schlimm, wenn die Konkurrenz hier erwähne, aber nirgendwo findet man Symfony-Tutorials, die so tief in die Materie gehen. Was Symfony vor allem so besonders macht ist der Umgang mit Services - Autowiring, Autofiguration, Service-Decoration, wie man mit eigenen Interfaces Symfony "beibringt", wohin eine Klasse injiziert werden soll, richtiger Umgang mit dem Event-Dispatcher, das Verstehen vom Symfony's Security-System uvm. Das sind auch das, was Arbeitgeber wirklich sehen wollen und da Fragen stellen.

  • @groovebird812
    @groovebird812 2 года назад +1

    Super, genau mal ein Einstieg und ich fand es nicht soo kompliziert und konnte alles nachvollziehen. Symfony hab ich als so ein riesen Monster im Kopf :-) Aber bei dem Formular erscheint es mir fast weniger Arbeit einfach die Felder im Template zu definieren. aber ich hab wahrscheinlich noch nicht die Vorteile erkannt bzw. habe ich bisher nie Felder mehrfach genutzt

    • @VitalijMik
      @VitalijMik  2 года назад

      Vor allem geht es auch darum um es später automatisiert zu testen und der Javascript code wird mit aufgebaut mit required etc. Hat schon Vorteile die Forms zu nutzen

    • @groovebird812
      @groovebird812 2 года назад

      @@VitalijMik Ah ok, das ist natürlich super. Danke.

    • @barneysmith
      @barneysmith 2 года назад

      Unittests zu diesem Projekt wären super 👍

  • @Rene04277
    @Rene04277 2 года назад +1

    Symfony Tutorial finde ich gut, wobei mir das sicher, als ich das Intro gehört habe etwas zu low sein wird. Aber ich schaue es mal flüchtig an und hoffe, dass ich noch etwas lernen kann. Auch ein Tutorial für Fortgeschrittene fände ich gut.

    • @VitalijMik
      @VitalijMik  2 года назад

      dankeschön, ne das ist wirklich nur für beginner gedacht. Ich finde bei Symfony gibt es nicht so viel Fortgeschrittenes direkt, die Anwendungen an Sich sind immer das was komplexer sind. Die Packages sind immer easy to use und super dokumentiert.

    • @Rene04277
      @Rene04277 2 года назад +1

      @@VitalijMik Ja, das stimmt. Und es gibt in Symfony unendlich viele Möglichkeiten irgend etwas auszuführen, was zum selben Ergebnis führen. Gerade das Thema Formulare und Validierung.

    • @lako2023
      @lako2023 2 года назад

      ​@@VitalijMik Da könnte man sicherlich Tipps reinnehmen wie den PHP CS-Fixer in VS Code zu verwenden für automatische Formatierung des Quellcodes nach Symfony-Standards beim Speichern, Integration von PHPStan (Level 9 ;-)), ebenfalls mit automatischer Ausführung beim Speichern, Extensions für die Formatierung von Twig-Vorlagen wie Prettier etc.
      Was den für Entities, Repositories und Forms(Types) bei Symfony notwendigen Code angeht, der bei bspw. der Umsetzung eines CMS mit leicht 50 DB-Tabellen á 10-20 Felder extrem umfangreich werden kann: Da war meine 1. Amtshandlung einen Generator zu schreiben, der diese Dateien jederzeit auf einer zentralen Konfiguration neu erzeugen kann, statt dies alles händisch machen zu müssen und somit nicht regelbasiert arbeiten zu können. Quasi ein MakerBundle XXXL, aber mit allen Best Practices und ohne die diversen Fehler des MakerBundle, immer validierbar ob Code den neuesten Anforderungen genügt, mit generischem Admin-Controller der alle Forms der Entities darstellen und verarbeiten kann etc. Da fehlt leider zu vieles bei Symfony, was ein Framework eigentlich abdecken müsste und was letztlich >90% der Projektzeit einspart (intern natürlich ;-)).

  • @IlyaShap
    @IlyaShap 2 года назад +1

    Sehr cool, danke!

    • @VitalijMik
      @VitalijMik  2 года назад

      danke dir fürs kommentieren ;)

  • @fleckenfurz77
    @fleckenfurz77 2 года назад +1

    Woran mag es liegen, dass ich in dem dump von $data kein createdAt habe, sondern nur die Formularfelder? :/

    • @fleckenfurz77
      @fleckenfurz77 2 года назад

      Folglich (?) kommt es auch zu folgender Fehlermeldung:
      "EntityManager#persist() expects parameter 1 to be an entity object, array given."
      Für jemanden, der bisher mehr mit Laravel zu tun hatte, ist das etwas seltsam, wenn man eine Methode für den GET-Request (das Ausliefern des Formulars) und den POST Request verwendet, also das In-Empfang-Nehmen des Requestobjekts,..
      Nur wie gesagt: createdAt ist nicht Bestandteil von $form - hat vllt DDEV den Timestamp reinge-"sneaked"? ^^

    • @VitalijMik
      @VitalijMik  2 года назад +1

      Wenn du createFrom aufrufst, übergibst du ja da den Form Typen. bei 28:55 setze ich via data_class was man im Formtype als data kriegen sollte. wenn es da nicht steht, dann kommt ein array raus.
      createdAt kommt aus dem Entity. der FormType wandelt die formdaten in ein entity um und bei der entity definition haben wir ein createdAt im constructor der Entity erstellt 32:35
      Also Formtype definiert in welche entity das Formular umgewandelt werden soll und die entity definiert welche Felder es neben dem Formular automatisch befüllen soll

    • @VitalijMik
      @VitalijMik  2 года назад +1

      @@fleckenfurz77 komisch bei leravel habe ich das aber auch so gemacht. Am anfang erstmal alles in eine Action und dann später auf mehrere Actions verteilt
      ruclips.net/video/ZGVhSAW2NYw/видео.html

    • @fleckenfurz77
      @fleckenfurz77 2 года назад

      @@VitalijMik Tja, bei mir funktioniert es erst wenn ich das Model instanziiere und der Methode createForm als 2ten Parameter beigebe:
      public function index(Request $request): Response {
      $comment = new Comment();
      $form = $this->createForm(CommentType::class, $comment);
      $form->handleRequest($request);
      if($form->isSubmitted() && $form->isValid()){
      $data = $form->getData();
      $this->em->persist($data);
      $this->em->flush();
      return $this->redirectToRoute('conferences');

    • @VitalijMik
      @VitalijMik  2 года назад

      @@fleckenfurz77 wie sieht denn deine commenttype Klasse aus?

  • @aleksejwert
    @aleksejwert 4 месяца назад +1

    Top👍

  • @RealLexable
    @RealLexable 2 года назад +1

    Bei deinem Kanal bekommt man das Gefühl den nötigen Stoff einer gesamten Ausbildung geliefert zu bekommen. Ich hoffe es doch zumindest, oder wäre da noch sehr viel mehr was für einen hypothetischen Abschluss fehlen würde ? ...bitte sag nein :D

    • @VitalijMik
      @VitalijMik  2 года назад

      jain :D ich erkläre nur den Programmierpart einer Ausbildung. in der Ausbildung hatten wir noch Netwerksysteme, Recht und es gibt noch Ethik Teile :D davon kann ich nicht viel erklären also ist es quasi nur ein viertel einer Ausbildung;)

  • @ThomasMunch-tw7bq
    @ThomasMunch-tw7bq Год назад +1

    Formvalidierung klappt bei mir nicht

    • @VitalijMik
      @VitalijMik  Год назад +1

      Gibts da eine Fehlermeldung? Kannst du ein Code auf github/pastebin posten? so kann ich leider nicht weiterhelfen.

    • @ThomasMunch-tw7bq
      @ThomasMunch-tw7bq Год назад +1

      @@VitalijMik Hallo Vitalij, jetzt geht es bei mir, ich weiß ehrlich gesgat nicht, woran es genau lag. ;-) Danke für deine Hilfe und das tolle Tutorial.

    • @VitalijMik
      @VitalijMik  Год назад +1

      @@ThomasMunch-tw7bq in der Programmierung kommt es immer wieder mal vor dass man vor lauter bäumen den Wald nicht sieht, dann geht man kurz spazieren und dann lässt sich das Problem lösen :D

  • @findibus28
    @findibus28 6 месяцев назад

    Habe leider ziemliche Probleme mit der Column 'createdAt'. Es scheint so, als ob Symfony in der neuen Version keine 'DateTimeImmutable' mehr kennt:

    • @VitalijMik
      @VitalijMik  6 месяцев назад

      was für ein Problem hast du denn? DateTimeImmutable ist eine reine PHP Klasse www.php.net/datetimeimmutable. eventuell musst du vorher ein backslash setzen oder über use DateTimeImmutable; das ganze einbinden

  • @pinkeHelga
    @pinkeHelga 2 года назад

    #Themenanfrage
    PHP hat das SPL Autoloadsystem. Am performantesten wäre es, die nativ implementierten PSR4-Autoloadmechanismen zu verwenden. Nach längerem Herumprobieren habe ich herausgefunden, daß die voreingestellten Funktionen Namespace- und Klassennamen in lower case Dateipfadnamen umwandeln und die Dateien nur in der Form auf dem System finden. Das finde ich ungünstig - schwerer lesbar / Verwechselungsgefahr; für PHP-Storm finde ich keine Konfigurationsoptionen, um unterschiedliche Notationsformen zwischen Klasse und Datei automatisiert zu unterstützen.
    Ich habe schon erwogen, ein Build-/Deploymentsystem zu schreiben, das Dateinamen für das Produktivsystem konvertiert, und in der Entwicklungsumgebung bleiben "schöne" Namen bestehen. Während dem Testing wären noch Symlinks denkbar.
    Hast Du noch weitere Lösungsansätze außer eigene Autoload-Funktionen zu schreiben? Am schönsten wäre, wenn die nativen Methoden entsprechend konfigurierbar wären.
    Wenn Du auf dem Gebiet schon einige Erfahrungen in unterschiedlichen Praktiken gemacht hast, könntest Du vielleicht in einem Video umfassender darauf eingehen und Vor- und Nachteile der verschiedenen Ansätze diskutieren.

    • @VitalijMik
      @VitalijMik  2 года назад

      verstehe die frage nicht, wieso sollte php klassennamen und dateinamen in lowercase umwandeln? Du müsstest schon mehr Informationen mit einem Beispiel schicken ;)

    • @pinkeHelga
      @pinkeHelga 2 года назад

      @@VitalijMik Ich verwendete mal spl_autoload_register() ohne Parameter auf einem Linuxserver, wodurch dann die native, vordefinierte PSR4-Funktion registriert wird. Ich konnte mir stundenlang nicht erklären, wieso meine Klassen unterhalb des Vendor-Verzeichnisses nicht gefunden wurden, bis ich mal ausprobierte, die Dateinamen in lower-case umzubenennen. Seither frage ich mich, ob es auch irgendwie anders geht.
      Wieso PHP umwandeln sollte? Möglicherweise aus kompatibilitätsgründen zwischen verschiedenen Dateisystemen. Manche unterscheiden, andere nicht. So hat man es von vornherein einheitlich, und es kommt zu den gleichen Namenskonflikten auch bei case-sensitiven Systemen.
      Ich habe aber nicht (immer) die Zielsetzung, zu exotischen System kompatibel zu sein. Manchmal möchte ich einfach nur die quasi kompromißlos performanteste Lösung.

    • @pinkeHelga
      @pinkeHelga 2 года назад

      Ich hab's auch aktuell nicht mehr überprüft, ob sich in neueren Versionen etwas geändert hat. Ich nutze seitdem immer skriptimplementierte Autoloader.
      Ich hatte auch lange Zeit Short-Tags vermieden, bis ich darauf gestubst wurde, daß seit einigen PHP-Versionen Short-Tags defaultmäßig aktiviert wurden und nahezu alle Hoster das auch unterstützen.

    • @VitalijMik
      @VitalijMik  2 года назад

      @@pinkeHelga also PSR-4 ist ja ein standard der in composer umgesetzt wurde, wenn du also composer dump-autoload aufrufst, generiert composer eine Datei mit dem Autoloader.
      Die Dateinamen und Klassennamen müssen gleich sein, CamelCase, die Groß und Kleinschreibung ist wichtig weil unter Linux darauf geachtet wird. Unter Windows ist die Groß und Klein Schreibung egal weil Windows so funktioneirt.
      Aber PHP setzt die Dateinamen gewiss nicht in Lowercases, ich glaube du verwechselt hier irgendwas.
      Spl_autoload_register ist einefach nur ein Hook, sobald eine neue Instanz erstellt wird oder eine Konstante einer Klasse aufgerufen wurde oder eine Statische Methode aufgerufen wurde, triggert die Methode ein event und übergibt den Namespace namen und klassennamen als Argument und zwar genauso wie es beim Aufrufen agegeben wurde.
      PSR-4 Standard holt sich nur den Namen und wandelt namespaces in Order um und hängt noch einen Prefix namespace davor.
      Du kannst composer dump-autoload -o aufrufen. -o ist optimized parameter wodurch composer einfach alle dateien die es findet in einen array reinschreibt, den siehst in vendor/composer/autoload_real.php oder so(irgend eine davon) und dann siehst du genau was composer an Klassennamen gefunden hat.
      also PHP macht da nichts

    • @VitalijMik
      @VitalijMik  2 года назад

      @@pinkeHelga das was du da zeigst ist eine short funktion fürs echo, diese ist eine ausnahme.
      www.php.net/manual/de/ini.core.php#ini.short-open-tag
      da steht folgendes "
      Diese Option hat keinen Einfluss auf die Kurzform

  • @eisfee49
    @eisfee49 2 года назад +3

    Wie immer in deinen Videos, für Anfänger, die Symfony lernen möchten, alles viel zu schnell. Dieses Video soll ja für Beginner sein. Leider hast du z.B. nicht erklärt wie du die use Statements in die GuiestBookType.php gezogen hast. Wie schon erwähnt, alles viel zu schnell und zu oberflächlich. Wenn du schon im Video erwähnst, dass dieses Tutorial für Beginner mit Symfony gedacht ist, fehlen mir da einfach mehr Erklärungen. Ich glaube, dass du ein super Programmierer bist, aber leider ein schlechter Lehrer. Deine Videos sind NUR FÜR FORTGESCHRITTENE und PROFIS geeignet. Frage dich doch einmal, warum deine Abonnenten nicht steigen. In all deinen Videos sagst du, dass du dazu und dazu und dazu und zu diesem Thema schon ein Video gemacht hast. Aber warum muss ich mir drei bis vier Videos anschauen um evt. den Inhalt von diesem Video zu verstehen. Auch in diesem Video ist das so. Warum nicht ein Video vom Anfang bis zum Ende, mit allen Komponenten die für dieses Thema gebraucht werden, inkl. installation aller Einzelkomponenten. Ich würde mich gerne in Symfony einarbeiten. Aber leider ist dein Tutorial dazu für mich ungeeignet. Bedenke, auf RUclips gibt es viel mehr Anfänger als Fortgeschrittene und Profis. Das ist nur meine Meinung, aber es könnte dir zu viel mehr Abonnenten helfen. LG

    • @VitalijMik
      @VitalijMik  2 года назад +1

      Das mit Use Statements habe ich im Video erklärt, die IDE schlägt dir das sofort vor wenn du Intellisense plugin installiert hast.
      Zum Thema Anfänger, doch es ist ein Anfänger Tutorial, ich habe gerade mal die Basics von Symfony gezeigt und ich bin davon ausgegangen dass man bereits mit OOP sich auskennt und weiß was Namespaces sind und was Use Statements sind.
      In einer Ausbildung, lernst du diese Dinge am Anfang des Zweiten Ausbildungsjahres, du bist damit immer noch in der Ausbildung und bist immer noch ein Anfänger.
      Fortgeschrittene und Profis sind für mich ausgebildete Entwickler und nach drei Jahren Ausbildung sollte man schon komplexere Dinge programmieren können.
      NATÜRLICH muss ich ein Video in mehrere Parts aufteilen, wie stellst du dir das eigentlich vor? Denkst du Programmieren ist ein Einfacher Job den Jeder einfach so machen kann? Denkst du wir sind überall so stark gefragt und gut bezahlt nur weil wir ein Video auf YT schauen? Ich bin nur grob Symfony durchgegangen und das Video dauert schon über einer Stunde.
      Das Thema ist kompliziert und dieses Tutorial IST für Anfänger (Azubis ende des ersten Lehrjahres und Anfang vom Zweiten Jahr) Wenn das für dich keine Anfänger sind dann?

    • @eisfee49
      @eisfee49 2 года назад +2

      @@VitalijMik Schade du verstehst es nicht, oder willst es nicht verstehen. Werde mein Abo beenden.

    • @VitalijMik
      @VitalijMik  2 года назад +1

      Doch ich verstehe dich, du hättest auch einfach nachfragen können wenn du was nicht verstanden hast. Die Aussagen wie "du bist ein schlechter Lehrer" oder "frag dich mal wieso du so wenige Abonnenten hast" sind einfach nur fehl am Platz. Ich könnte genauso sagen frag dich mal wieso du ein Anfänger Tutorial als fortgeschritten einstufst. Alles was ich da mache ist es via Composer Pakete zu installieren und diese aufzurufen.

    • @peterk.2925
      @peterk.2925 2 года назад +1

      @@VitalijMik Ich bin auch Anfänger und auch manchmal genervt, dass ich einiges noch nicht verstanden habe. Aber jetzt ist alles klar. Vitalij ist schuld daran. Wer hätte das gedacht 😂So ein Blödsinn! Egal was man im Leben erreichen will, man hat alles selbst in der Hand! Ich habe mit meiner Frau einen größeren Onlineshop aufgebaut und solche Kommentare kennen wir auf Facebook auch. Wir könnten mehr Mitglieder oder Likes haben, wenn..... Aber für mich ist das Problem nicht, dass es solche Leute gibt sondern das mir das dicke Fell dazu fehlt. Naja ich finde Du machst super Videos und danke, dass Du da soviel Zeit investierst 🙂

    • @VitalijMik
      @VitalijMik  2 года назад

      @@peterk.2925 danke, aber unrecht hat sie ja nicht, das blöde ist, dass Symfony im Professionellen Umfeld zum Einsatz kommt. Entwickler werden dafür bezahlt, dass man apps mit Symfony Entwickelt. Um da überhaupt die Grundlagen zu verstehen, wird eine Ausbildung als Fachinformatiker vorausgesetzt. Sonst könnte es ja jeder machen. Ich kann leider keine 3 Jährige Ausbildung mit einem Kurzen Video ersetzen

  • @TimonReinmann
    @TimonReinmann 6 месяцев назад

    Super Video , aber können wir darüber reden wie miserable und uneinheitlich, er seinen Code strukturiert hat XD

    • @VitalijMik
      @VitalijMik  6 месяцев назад +1

      ist schon länger her, was ist denn miserable und uneinheitlich? :D

    • @TimonReinmann
      @TimonReinmann 6 месяцев назад

      @@VitalijMik Inhaltlich ist das Video Super, bin jetzt im ersten Lehrjahr und muss jetzt mit php starten für das nächste Interne Projekt, also an diesem Punkt hast du mir sehr weitergeholfen, danke dafür🙏, aber ich fand es lustig das du den Code sehr uneinheitlich formatiert hast, also z.B. die Platzierung der Geschweiften klammern, Zeilenumbrüche, oder die platziereng von dem "=" bei einer Erstellung einer Variabel.

    • @VitalijMik
      @VitalijMik  6 месяцев назад +1

      kann sein dass es im video nicht komplett einheitlich ist. In der Regel nutze ich einen sogenannte CS-Fixer in meiner IDE. der Formatiert automatisiert den code nach vorgegebenen industrie standards. Normalerweise ist das der PSR-12 code standard. Ich achte deshalb biem tippen gar nicht mehr drauf weil das automatisert formatiert wird.
      niemand hat die Zeit um sich manuell um den Code style zu kümmern ;)

  • @tomassylt
    @tomassylt 6 месяцев назад

    Viel zu viel schreiben. Im Nette framework ist genau so gleiche mit wenige schreiben und mehr einfach.

    • @VitalijMik
      @VitalijMik  6 месяцев назад

      hm.. genauso viel code aus. auch in nette erstellst du dein form objekt, deine controller, deine entities