2017-01-14 20 views
6

Jestem trochę zmieszany z konwencjami Laravel, ponieważ jestem nowy w tym systemie. Śledzę filmy Jeffreya Waya Laracasta, których używa Liczba mnoga dla nazw kontrolerów.Laravel 5 Konwencje nazewnictwa

Np .: PagesController, Kontrolery, PostsController

Ale jeśli odnoszą się oficjalne dokumentacje Laravel > Controllers i Laravel > Tutorials > Quick Start > Intermediate Task List to wykorzystuje Singular nazwy.

Np .: PhotoController, TaskController

Czy ktoś proszę wymienić w dół oficjalne standardy kodowania dla następujących podmiotów?

Stoły: wpisy, komentarze post_comments lub post, komentarz, Postcomment

kolumnach: id, post_id, comment_id lub ID, postID, commentId

regulatorów: PagesController , Kontroler kart, PostsController lub PhotoController, TaskController

Modele: Strony, karty, Wiadomości lub Page, karty, post

+0

Zgadzam się z obydwoma poniżej, oprócz nazw kontrolerów. Widziałem, jak ludzie używają kontrolerów zarówno w liczbie pojedynczej, jak i mnogiej i całkiem szczerze, to jest dla ciebie bardziej sensowne. Po prostu zachowaj spójność z tym, z którym się wybierasz. –

Odpowiedz

10

Stoły: wpisy, komentarze comment_post

Kolumny: id, post_id, comment_id

Kontrolery: PhotoController, TaskController

Modele: Page, karciane, Post

Aby uzyskać więcej informacji sprawdź moje Laravel naming conventions tabeli.

+0

czy to nie jest post_comments? Myślę, że nie post_comment –

+0

Nie, faktycznie powinien to być "comment_post", który pochodzi od nazw obcych kluczy w kolejności alfabetycznej. –

+0

To jest mylące, jeśli konwencja nazewnictwa tabel bazy danych jest w liczbie mnogiej węża, dlaczego jest to comment_post? Powinno to być post_comments, ponieważ 1 post może zawierać wiele komentarzy. W każdym razie zgodnie z dokumentacją, jeśli chcę, mogę użyć $ table = 'post_comments'; fragment kodu, aby zmienić domyślną nazwę tabeli na moją własną w klasie modelu. –

2

pamiętać, że „konwencje” są tylko konwencjami i można robić, co chcesz po prostu być na stałym poziomie, jednak lepiej jest postępować zgodnie z dokumentacją:

  1. Table name: mnogiej i _ aby rozdzielić słowa (użytkowników, tagi, ...)
  2. Columns name: pojedyncza i _ oddzielić słowa (użytkownik, znacznik, ...)
  3. Models: pojedyncza z pierwszą literą a kapitalizacja odrębnych wyrazów (użytkownik, Tag, ...)
  4. Controllers: pojedyncza z skapitalizowanych pierwszej litery i kapitalizacji oddzielić słowa następnie „Controller” (UserController, TagController,. ..)
+0

Nazwa kontrolera nie powinna opierać się na nazwie modelu. W prawdziwej aplikacji jest wiele kontrolerów, które nie mają "własnego modelu" i kontrolerów, które używają wielu modeli. –

+0

Tak, jeśli kontroler jest powiązany z modelem, to lepiej je skojarzyć, ale jeśli nie możesz tylko pojedynczego + "kontrolera" (TagController, UserController, ...) – paolobasso

+0

To jak nazwać "model" o nazwie składa się wielu słów: 'UserMetaKey'. Model o tej nazwie oczekuje tabeli o nazwie 'user_meta_keys'. – Amr

0

wiem, że jestem ze starej szkoły (kodowania od 1984 roku na komputerach, choć po ewoluowały z PHP i JS/ECMAScript od ich pierwszej wersji), ale stara dobra zasada Merise „nigdy nie używać liczby mnogiej” miał silne i dobre powody do szanowania. Co za litość Eloquent zmusza nas do używania nazwy tabeli w liczbie mnogiej.

PSR-2 lub PSR-1 nie wskazuje nic na liczbę mnogą lub pojedynczą, ale dla uproszczenia, zdecydowanie zalecam, aby zawsze używać pojedynczej, z wyjątkiem sytuacji, gdy "system" tego potrzebuje (tak jak robi to Eloquent). W takim przypadku nie mieszaj liczby mnogiej i liczby pojedynczej. W przypadku datatables używanych przez laravel używamy nazw tabel w liczbie mnogiej. To jest osobliwość (w porównaniu do innych wydarzeń już wykonanych lub z którymi się komunikujemy), ale wszystkie tabele są w liczbie mnogiej w tej części.

I NIGDY nie wykonuj literówki podczas nazywania czegoś (na przykład: "osobisty" i.o. "osobisty" itp.). Najpierw sprawdź. Reguły ortograficzne.