Advertisement
Sajgoniarz

Parametryzowanie widoków

Feb 15th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.58 KB | None | 0 0
  1. 1. Separacja wartości
  2.  
  3. a.) dobrze :
  4.  
  5. SomeController.php =>
  6.  
  7.     SomeController {
  8.         ...
  9.         $this->render('template.twig', [
  10.             'a' => $a,
  11.             'b' => $b;
  12.             'c' => $c;
  13.             'd' => $d;
  14.         ]);
  15.     }
  16.  
  17. template.twig =>
  18.  
  19.     <section>
  20.         ...
  21.         {{ a }} - wartości są używane pojedynczo, a więc powinny trafić osobno na widok
  22.         ...
  23.         {{ b }}
  24.         ...
  25.         {{ c }}
  26.         ...
  27.         {{ d }}
  28.     </section>
  29.  
  30. b.) źle :
  31.  
  32. SomeController.php =>
  33.  
  34.     SomeController {
  35.         ...
  36.         $this->render('template.twig', [
  37.             'a' => $a,
  38.             'b' => $b;
  39.             'c' => $c;
  40.             'd' => $d;
  41.         ]);
  42.     }
  43.  
  44. template.twig =>
  45.  
  46.     <section>
  47.         ...
  48.         {% if a and b and c and d %} - wartości są używane razem, wymuszają dodatkową logikę na widoku oraz dodatkową pracę developera jeżeli np. któraś wartość zniknie (łamanie MVC)
  49.             <div> ... </div>
  50.         {% endif %}    
  51.     </section>
  52.  
  53. 2. Wyliczanie wartości
  54.  
  55. SomeController.php =>
  56.  
  57.     SomeController {
  58.         ...
  59.         $this->render('template.twig', [
  60.             'combinedValue' => $a && $b && $c && $d - wartość, którą jest zainteresowany widok jest wyznaczana w kontrolerze (zachowanie MVC)
  61.         ]);
  62.     }
  63.  
  64. template.twig =>
  65.  
  66.     <section>
  67.         ...
  68.         {% if combinedValue %} - używana jest pojedncza wartość, logika jest w kontrolerze, jej modyfikacja nie wymusza zmiany widoku
  69.             <div> ... </div>
  70.         {% endif %}    
  71.     </section>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement