I read somewhere that one should not pass plain model objects to view, but only read-only objects. So, currently I have something like this in my controller:
$user = new User(); // Model class
$this->setData('user', $user); //obviously $this refers to the controller object
I guess the reason to avoid passing a model object is, someone who is working on the view may be tempted to do some "business logic" in the view. That would break "separation of concerns".
You don't have to worry about it if:
smartyto render views. In accepted practice, such a language lacks the power to do business logic.