Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wzorzec MVC - Klasy pomocnicze, gdzie inicjować?
Forum PHP.pl > Forum > PHP
Ultear
Witam,

Jak w temacie, klasy pomocnicze są inicjowane w kontrolerze czy w widoku?


Z góry dziękuje za pomoc.
marcio
Ja helpery laduje w kontrolerze gdy mam juz zaladowany widok a jego metody uzywam w widoku.
Ultear
Możesz mi pokazać jakiś przykładowy kod? smile.gif Byłbym wdzięczny biggrin.gif
marcio
Metoda kontrolera:
  1. public function Index()
  2. {
  3. Vf_Loader::loadHelper('Uri');
  4. $model = Vf_Orm::factory('news');
  5. $pager = new Vf_Pagination();
  6. $pager -> setTotal($model -> countNews());
  7. $pager -> setPerPage(5);
  8. $pager -> setUriSegment($this -> uri -> getSegment());
  9. $pager -> setBaseUrl(Vf_Uri_Helper::site(true, '', false));
  10. //$pager -> setBaseUrl();
  11.  
  12. $newsModel = $model -> setSort('DESC') -> findAll($pager -> getOffset(), $pager -> getPerPage()) -> toArray();
  13. $view = new Vf_View('listAll', 'component', 'news');
  14. $view -> loadHelper('User');
  15. $view -> loadHelper('Box');
  16. $view -> loadHelper('Region');
  17. $view -> loadHelper('BBCode');
  18. $view -> news = $newsModel;
  19. $view -> pager = $pager -> display(true);
  20. return $view -> render();
  21. }

Widok:
  1. {@ assets type="css" path="../components/news/assets/css/styles.css" @}
  2. <?php if(sizeof($news) > 0): ?>
  3. <?php $base = Vf_Uri_Helper::base(true); ?>
  4. <a href="/Vf/index.php/rss"><img align="right" src="../assets/images/rss.jpg" /></a><Br />
  5. <table class="newsList">
  6. <?php foreach($news as $data): ?>
  7. <?php $linkToNews = Vf_Uri_Helper::url('news.read', array(':id:' => $data['id'])); ?>
  8. <div>
  9. <tr>
  10. <td><h3><a href="<?php print $linkToNews; ?>"><?php print $data['tytul']; ?></a></h3><td>
  11. </tr>
  12. <tr>
  13. <td>
  14. <p>
  15. <?php print Vf_BBCode_Helper::cutText(stripslashes($data['tresc']), 25);?>
  16. </p>
  17. </td>
  18. </tr>
  19. <tr>
  20. <td>
  21. <p class="linkReadNews">
  22. <a href="<?php print $linkToNews; ?>">Czytaj</a>
  23. </p>
  24. </td>
  25. </tr>
  26. <tr>
  27. <td>
  28. <p id="aboutNewsDate" class="aboutNews">
  29. Data: <?php print $data['data']; ?> Autor: <?php print $data['autor']; ?>
  30. <?php if(Vf_User_Helper::is('admin')): ?>
  31. <a href="<?php print $base; ?>Home,Index,delete,<?php print $data['id']; ?>,{@csrf_token@}"><span>usun<span></a>
  32. <a href="<?php print $base; ?>Admin,News,editNews,<?php print $data['id']; ?>"><span>edytuj<span></a>
  33. <?php endif; ?>
  34. </p>
  35. </td>
  36. </tr>
  37. </div>
  38. <?php endforeach; ?>
  39. <tr>
  40. <td align="center"><?php print $pager; ?></td>
  41. </tr>
  42. </table>
  43. <?php else: ?>
  44. <?php print Vf_Box_Helper::error('Brak wpisow w bazie'); ?>
  45. <?php endif; ?>
skowron-line
Helper zazwyczaj posiada metody statyczne wiec nie musisz ich inicjalizować (tworzyc obiektow). Odwołujesz sie do niech w widoku a autoloader sam je laduje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.