Laravel planowanie projektu

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 :)

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.

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.

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ść.

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.

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.

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

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?

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ć.

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1