1

I heard about MVVM a couple of days ago, I searched about it and read a few articles, but I'm really confused now and I don't know what ViewModel in Model-View-ViewModel really is.

  1. Is following sample a right way to implement MVVM in PHP?
  2. Where should I process form request?

View: View is a simple (logic-less) output template, like a Mustache template:

Hi {{name}}!

Model: Saves and retrieves raw data. Like a user class:

class user
{
    public function __construct($username){...};

    public function set_firstname($firstname){...};
    public function get_firstname(){...};

    public function set_lastname($lastname){...};
    public function get_lastname(){...};
}

ViewModel: Processes Model's raw data and sends results to View

class ViewModel
{
    public function request_showUserPage()
    {
        $user      = new user('sample@example.com');

        $firstname = $user->firstname;
        $lastname  = $user->lastname;

        $name = $firstname . ' ' . $lastname;

        $variables = 
            [
                'name' => $name
            ]

        $Mustache = new Mustache_Engine
        echo $Mustache->render('{{name}}', $variables);
    }
}

So, output will be:

Hi John Smith!

David
  • 125
  • 1
  • 8

0 Answers0