Laravel planowanie projektu

Laravel planowanie projektu
BL
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:4
0

Cześć ludzie,
Piszę właśnie swój pierwszy projekt w Laravelu, w zasadzie to mój pierwszy back-endowy projekt w życiu, dopiero zaczynam :) Dałem sobie za cel zbudowanie prostego serwisu ogłoszeniowego, zatrzymał mnie etap planowania haha :) Chodzi o to że, serwis ma mieć 5 kategorii i do każdej kategorii ma być inny formularz i własnie nie wiem czy dobrze to rozkminiam. W planach mam zamiar zrobić 5 kontrolerów, 5 modeli, 5 migracji i JS zmieniać ścieżkę w atrybucie action do konkretnego kontrolera który będzie to zapisywał w bazie w zależności od wybranej kategorii.
Doradźcie mi czy dobrze do tego podchodzę, Dzieki :)

TR
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 dni
  • Lokalizacja:700m n.p.m.
  • Postów:677
1

Niestety, jesteś kolejną osobą, która to wszystko zaczyna, za przeproszeniem, od d**y strony. Ręce opadają.

Nie umiesz zaprojektować prostej struktury bazy danych, a pchasz się we framework.

Najpierw naucz się dobrze podstaw samego języka, baz danych, SQL-a, poczytaj o algrotymach i strukturach danych, generalnie o informatyce, a dopiero potem, na samym końcu, bierze się za jakieś frameworki.

Inaczej, może w ciągu jakiegoś pół roku wymęczysz ten swój serwis, ale dobrej pracy i tak raczej nie dostaniesz.

To tak jakbyś chciał zostać mechanikiem samochodowym, bez żadnej znajomości mechaniki, żadnych podstaw matematycznych, fizycznych, czy znajomości budowy silnika, tylko dostajesz gotowe cześci samochodu, i teraz bawisz się w składanie, a jak złożysz to wszem i wobec ogłaszasz, że jesteś zajebistym mechanikiem i proszę mnie zatrudnić.

Tylko kiedy w tym samochodzie który sam zlożyłeś coś się zepsuje, to już nie naprawisz, bo brak tej podstawowej fundamentalnej wiedzy.

Edit: Nie spiesz się, poczucz się podstaw, a wyjdziesz na tym bardzo dobrze, będziesz lepszy niż cała reszta która popełnia ten błąd.


DRY > SOLID (nie bierz tego zbyt poważnie)
edytowany 4x, ostatnio: TomRZ
czysteskarpety
czysteskarpety
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
1

Kategoria to zwykła cyferka w bazie, nie potrzeba do każdej kategorii kontrolera, ogłoszenie = post, bardziej może dopieściłbym temat uprawnień, ról użytkowników, walidacji, reszta to pierdoły w zasadzie.
Pewnie takie projekty znajdziesz na github, kwestia przejrzenia kodu.


BL
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:4
0

Wiesz to nie jest tak że rzuciłem się na laravela nie znając php

Na samym starcie przerobiłem ten materiał i jestem świadomy że są to podstawy.

Po prostu jakiś czas temu czytałem tu albo na innym forum wątek gdzie użytkownik doradzał innemu że nie warto zgłębiać się w czystego php w tym znaczeniu że, potem i tak pracujemy na frameworkach że, w czystym php dzisiaj się już nie pisze i nie chodziło o sam język a, o to że, nie trzeba mieć za sobą projektów w czystym php aby wejść w framework że dużo rzeczy nauczę się pisząc już w samym frameworku.

Największy problem miałem jak zrobić walidacje do różnych kategorii, po prostu pomyślałem że 5 walidacji w jednym kontrolerze to za dużo i pomyślałem aby to rozdzielić na 5 ale widać błędnie i muszę inaczej do tego podjeść.

edytowany 1x, ostatnio: Bit_Lord
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:12 minut
  • Postów:3505
2

Dużo już było powiedziane to ja od siebie dodam, że ja bym zrobił tabelę na ogłoszenia, tabelę na kategorie. Wykorzystujesz relację między modelami i wszystko ogarniasz jednym kontrolerem.

edytowany 1x, ostatnio: jurek1980
TR
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 dni
  • Lokalizacja:700m n.p.m.
  • Postów:677
1

Dobrze, że przeczytałeś ten kurs, ale to naprawdę o wiele za mało, jeszcze "trochę" musisz się nauczyć.

Oprócz PHP polecam się jednocześnie uczyć innego języka, np. Javy, i próbuj realizować swoj testowy projekt jednocześnie w PHP i Javie, albo zamiast Javy może być Python, albo C# i środowisko .NET

Do tego bezwzględnie angielski - nie musi być komunikatywny, ale powinieneś bez trudu czytać dokumentacje i kursy po angielsku, bez tego ciężko coś poważnego robić.

Przykładowy tutorial dla Javy:

https://docs.oracle.com/javase/tutorial/

Za naukę bazy danych może posłużyć ten tutorial:

http://www.postgresqltutorial.com/

przy okazji zaznajomisz się z postgreSQLem, który mimo, że mniej popularny od MySQLa, to sama dobra znajomość teog silnika to bardzo duży plus, jednocześnie możesz się uczyć popularnego MySQL-a:

https://www.mysqltutorial.org/

Daj sobie conajmniej rok - dwa czasu na zostanie osobą która samodzielnie i bez większych problemów będzie budować aplikacje www od strony backendu.

Dodatkowo powinieneś się uczyć dobrych praktyk i wzorców programowania:

dobre praktyki (chociaż ja nie wszystko 100% stosuję z tych zaleceń, szczegolnie jeżeli chodzi o cache):

https://www.php-fig.org/

Do tego poczytaj o DDD - Domain Driven Design, oraz TDD - Test Driven Development

Jak widzisz tematów jest wiele.


DRY > SOLID (nie bierz tego zbyt poważnie)
edytowany 9x, ostatnio: TomRZ
BL
Powiedz mi proszę czy twoim zdaniem mam kontynuować dalej z Laravelem czy mam pisać np: ten projekt o którym mówiłem w czystym php?
TR
Laravel jest przydatny bo wiele firm działajacych w PHP tego frameworka używa, tyle tylko, że powinieneś więcej wiedzieć zanim w nim będziesz pracował. Ja bym zrobił najpierw w czystym PHP żeby się nauczyć podstaw, samemu zrobić np. routing, a potem w Laravelu. Jak rozumiem to jest projekt testowy a nie dla kogoś z terminem, więc możesz się bawić na wiele sposobów i robić to np. w czystym PHP i kilku frameworkach jednocześnie.
TR
Jednak żeby zrozumieć co się dzieje w tym frameworku, po co w ogóle robisz to tam tak a nie inaczej, to musisz wiedzieć więcej. Mechanik kiedy naciska gaz w samochodzie dokładnie wie co się dzieje, możesz wsiąść do pojazdu pt. Laravel i robić krok po kroku to co pisze w ich kursie, ale do końca nie będziesz wiedział jak to działa i po co to robisz.
TR
Jeżeli tak zrobisz i trochę później wejdziesz we frameworki to i tak pewne rzeczy będą niejasne ale już o wiele mniej, łatwiej będzie się zatrzymać i douczyć, niż w stuacji kiedy jesteś po jednym kursie i wiesz mało.
BL
dzięki, Pozdrawiam
czysteskarpety
czysteskarpety
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0

Bez przesady, zaraz padnie rada aby zbudował komputer od podstaw i potem na nim nowy projekt w kilku językach :)
Tutaj masz paczkę zobacz co i jak: https://github.com/adumskis/laravel-advert


TR
Dla kogoś kto zaczyna, propozycja aby uczył się kilku języków na raz, a nie tylko jednego, to bardzo dobra rzecz. Myślę, że chyba nie muszę tego wyjaśniać...
BL
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:4
0

Witam ponownie,

Jestem w trakcie przerabiania SQL'a, i troszkę mi się poukładało w głowie, powiedzcie mi czy teraz to dobrze myślę jak to zrobić.

Tworzę sobie 1 kontroller w nim całą logikę + walidacje, 1 model, i tyle migracji ile kategorii czyli w tym przypadku 5 ponieważ każda będzie miała inny formularz i modelem wyciągam odpowiednio z nich dane. Dodatkowo tworze migrację z kategoriami i przypisuje tam klucze obce od użytkowników oraz klucz obcy ogłoszenia. Teraz okay?

drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
2

Niekoniecznie. Swego czasu pisałem podobny serwis tyle że nie w Laravelu. I dość uproszczony schemat działania. Wybierasz jedną z kategorii głównych czyli np. Nieruchomości, Motoryzacja, Praca, Pozostałe, wybierając jedną z tych kategorii nadrzędnych wybierasz kategorię podrzędną np. Motoryzacja -> Samochody osobowe, Motoryzacja -> samochody ciężarowe, Nieruchomości -> działki, Nieruchomości -> Mieszkania itd. I generalnie podczas dodawania ogłoszenia to pola formularza masz wspólne czyli np. tytuł, kategoria, opis, cena, dane kontaktowe, zdjęcia (opcjonalnie). Natomiast przy wyborze nadrzędnej kategorii i potem podkategorii (to może być i jedno pole typu select) to poniżej pojawiały się dodatkowe opcje, najwięcej dla samochodów osobowych (marka, model, silnik, wyposażenie itd.), mniej opcji dla ciężarowych, inne dla nieruchomości itd. A to wszystko po to żeby później można było precyzyjnie filtrować ogłoszenia.

A więc jedna tabela z ogłoszeniami, kategoriami (nadrzędna oraz podrzędne), inna tabela do opcji dodatkowych związanych z ogłoszeniem i wybranymi kategoriami. Te dodatkowe pola z opcjami dla wybranej kategorii i podkategorii to się mogą zmieniać (pojawiać i znikać) AJAX-em podczas zmiany w polach select związanych z kategoriami i bez przeładowania strony. Kwestia tego jak zapisujesz kategorie i podkategorie oraz te opcje dodatkowe, Poczytaj jeszcze o Nested Set albo takim czymś jak EAV (bazy danych), bo to może się przydać.

edytowany 2x, ostatnio: drorat1
BL
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:4
0

Okay, mniej więcej poukładało mi się to w głowie, teraz będę próbował to napisać a, EAV z tego jak to widzę faktycznie może się przydać.
dzięki za czas, pozdrawiam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.