Mam to oznaczone jako PHP, ale tylko dlatego, że będę używać kodu PHP, aby pokazać mój problem.Jak obsługiwać szablony stron internetowych MVC?
Więc mam trochę kodu podobnego do kontrolera:
switch ($page)
{
case "home":
require "views/home.php";
break;
case "search":
require "views/search.php";
break;
}
Oczywiście istnieje więcej stron, ale powinno to zilustrować mój problem. Istnieje wspólny nagłówek, nawigacja i stopka dla obu tych stron (i dla wszystkich stron w witrynie). Czy powinienem używać wielu instrukcji żądań? Moje pierwsze przypuszczenie to:
switch ($page)
{
case "home":
require "templates/header.php";
require "templates/navigation.php";
require "views/home.php";
require "templates/footer.php";
break;
case "search":
require "templates/header.php";
require "templates/navigation.php";
require "views/search.php";
require "templates/footer.php";
break;
}
W jakiś sposób moje jelito mówi mi, że to nie jest poprawne.
To nie jest odpowiedź na moje pytanie, nie wiem myślę, że mając ten sam nagłówek/stopkę/nawigację na obu plikach w smart. Zwłaszcza, że rażąco sprzeciwia się zasadzie DRY. –
Niekoniecznie. ASP.NET MVC oferuje strony wzorcowe, które umożliwiają zarówno rozdzielenie spraw (o których mówiłem), jak i zasady DRY. Nie wiem wystarczająco dużo o frameworkach php, aby wiedzieć, czy jest taki z podobną funkcją. Dla mnie utrzymanie SOC jest ważniejsze niż DRY – tvanfosson