Thursday, April 19, 2012

Are most PHP frameworks actually MVA instead of MVC?


Many PHP frameworks claim that they implement MVC design pattern. However, in their implementation, the model and view don't know each other and each communication in between must be done through controller. As I read in wikipedia, this is MVA (Model View Adapter) instead of MVC design pattern approach because in MVC, model and view communicates directly.



Those frameworks' claim are wrong or did I miss something?


Source: Tips4all

1 comment:

  1. Frameworks like CodeIgniter are MVA, yes. However, their claims are not wrong since MVA is basically a different type of MVC deployment. Mediating controllers are hit by users which handle the business logic; they also call to the model to get the data and prepare the view.

    This is not wholly diverged from strict MVC where the Model and View can talk to each other, so to say it's "wrong" is a bit harsh. I would say it's a different take on MVC.

    EDIT:

    See CodeIgniter's take on it:

    http://codeigniter.com/user_guide/overview/mvc.html

    Models are not required as everything can be done in the controller (not advised, obviously). Note that CI (and most other frameworks) say they are based on MVC principles.

    ReplyDelete