MVC variabele naar view

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roy B

Roy B

12/06/2014 14:40:49
Quote Anchor link
Ik ben bezig met een eigen MVC. In mijn view heb ik een aantal variabele die gevuld moeten worden. Dit gebeurt naar mijn inziens in de controller, maar de manier waarop ik het nu doe vind ik nog niet heel netjes.
Iemand tips? :)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// news.php
<html>
<head>
<title><?php echo $title; ?></title>
</head>

<body>
<h1><?php echo $title; ?></h1>
<?php
foreach($newsitems AS $newsitem)
{

  echo "<h2>".$newsitem["title"]."</h2>";
  echo "<p>".$newsitem["description"]."</p>";
}

?>

</body>
</html>

// newsitem.controller.php
<?php
class NewsitemController
{
  private $_model;

  public function __construct($model)
  {

    $this->_model = $model;
  }


  public function getAll()
  {

    $title = "Nieuws";
    $newsitems = $this->_model->getAll();

    include "views/news.php";
  }
}



?>
Gewijzigd op 12/06/2014 14:45:31 door Roy B
 
PHP hulp

PHP hulp

27/12/2024 15:32:34
 
Wouter J

Wouter J

12/06/2014 14:49:44
Quote Anchor link
Je moet een View layer in je classes inbouwen. Deze laad de template, zorgt voor de variabelen, etc.

Ong. zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
class ViewModel
{
    public $parameters = array();
    public $template;

    public function render($template = null, array $parameters = array())
    {

        extract(array_merge($this->parameters, $parameters));

        include $template ?: $this->template;
    }
}


// in controller
public function allAction()
{

    $newsItems = $this->_model->getAll();

    return $this->viewModel->render('views/news.php', array(
        'title' => 'Nieuws',
        'news_items' => $newsItems,
    ));
}

?>
Gewijzigd op 12/06/2014 14:50:00 door Wouter J
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.