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.
- Is following sample a right way to implement MVVM in PHP?
- 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!