2016-09-19 15 views
8

Mam trudności z dostaniem się w łeb na układach łopatek laravels.Ostrze Laravel - wiele układów?

Wszystkie przykłady i dokumentacje w Internecie (np. Dokumentacja laravel: https://laravel.com/docs/5.3/blade lub samouczki wideo na youtube) wykorzystują tylko jeden master.blade.php jako układ.

Czy istnieje najlepsza praktyka w przypadku bardziej złożonych projektów?

następujących typów treści są zawarte w moim projekcie:

  • produkt
  • kategoria
  • blog
  • taksonomia
  • domu
  • administracyjna
  • login/auth

Wszystkie te treści typów mają różne układy:

  • inny/brak paska bocznego
  • pasek boczny z lewej/prawej
  • inny cel
  • no/transparent przed zawartości
  • inna/bez menu
  • inna/bez breadcrumb

Więc nie wiem, w jakiej sytuacji ...

  1. utworzyć nowy plik układu (np /views/layouts/product.blade.php) i rozszerzyć go na mojej stronie (w /views/pages/product.blade.php z @extends ("layouts.product"))

... lub ...

  1. używaj tylko jednego pliku układu, który zawiera wszystkie typy i implementuj je jako sekcje w pliku stronicowania każdego typu.

To doprowadza mnie do szału już teraz i nie mogłem znaleźć nic wartościowego, jak najlepsza praktyka, aby użyć układów lub nie.

Dziękuję bardzo za pomoc!

+0

Można użyć bardzo ogólnego układu, a następnie użyć "include" do paska bocznego i innych części. – Hammerbot

Odpowiedz

3

Dobra praktyka polega na rozszerzeniu pewnego układu głównego, a następnie użyciu @include i @each w celu włączenia paska bocznego, stopki, nagłówka, widoku banera itp. Działa to doskonale nawet w przypadku naprawdę dużych projektów. Czasami chcesz użyć @if dla operatora obejmuje warunkowy:

@if (condition) 
    @include('some.view') 
@else 
    @include('another.view') 
@endif 
5

Struktura układ może łatwo stać się bałagan, dlatego też jest mocno zalecane, aby utrzymać układy i partials zorganizowane w intuicyjny struktury folderów.Robiąc to, będziesz mieć pewność, że w przyszłości, gdy aplikacja będzie się rozwijać, pozostanie czysta i uporządkowana. Zależy to również od rodzaju projektu, nad którym pracujesz. Wierzcie lub nie, czasami struktura folderów różni się w zależności od projektu.

O ile mi wiadomo, nie ma żadnych "najlepszych praktyk" w zakresie organizowania folderów specyficznych dla Laravel, ale tutaj jest przykład, jak organizować swoje projekty (i pracowałem dla wszystkich moich aplikacji Laravel tam):

views/ 
├── v1/ 
│ ├── master 
| | ├── master-public.blade.php 
| | ├── master-admin.blade.php 
| | ├── master-user.blade.php 
| ├── components 
| │ ├── navigation 
| | | ├── public.blade.php 
| | | ├── admin.blade.php 
| | | ├── user.blade.php 
| | ├── headers 
| | ├── footers 
| ├── views 
| | ├── home 
| | ├── chat 
| | ├── order 
| | ├── reports 
| ├── partials 
| | ├── ads.blade.php 
| | ├── sidebar.blade.php 
| ├── public 
| | ├── registration.blade.php 
| | ├── login.blade.php 
├── v2/ 
└── v2.2/ 

najważniejszą rzeczą tutaj wspomnieć jest to, że w moim katalogu poglądów utworzyć folder za każdą trasę skończę mając w mojej aplikacji.

Uważam również, że ważne jest posiadanie jako folderów nadrzędnych wersji interfejsu użytkownika aplikacji internetowej. Czasami, po ponownym uruchomieniu interfejsu użytkownika, po prostu zapisuje się pliki w tych samych katalogach, co nie jest dobre długoterminowo, ponieważ w końcu będziesz mieć morze plików dla różnych wersji swojej witryny w tym samym folderze.

Mam nadzieję, że to pomoże!

Pozdrowienia i powodzenia!

+0

Naprawdę podoba się wersja interfejsu użytkownika jako folderu nadrzędnego. Czy nadal robisz to rok później? –

+2

@PierreLeBot W produkcji wciąż mam. Ten szczególny sposób organizowania moich widoków Blade okazał się bardzo przydatny do testowania AB i ogólnie do wersjonowania naszego interfejsu użytkownika. Gdybym zaczynał od zera i chciałby trzymać się tej struktury, lepszym podejściem byłoby stworzenie submodułu git w moim projekcie Laravel, który zawierałby wszystkie moje rzeczy związane z interfejsem użytkownika i zatwierdzał każdą wersję za pomocą tagu git. W ten sposób nie musisz kopiować/wklejać wielu plików w każdej nowej wersji, dzięki czemu rozmiar Twojej aplikacji jest znacznie mniejszy. Obecnie przenosimy wszystkie moje widoki do VueJS. Mam nadzieję że to pomoże! – idelara