Model-View-Controller (MVC)



Profound UI PHP development is based on the Model-View-Controller development pattern. MVC is a software approach that separates application logic from presentation.

  • Model - the model represents your data structures. Typically your model classes will contain functions that help you retrieve, insert, and update information in your database.  Profound UI implements a fairly loose approach to MVC since models are not mandatory. If you don't need the added separation, or find that maintaining models requires more work than you want, you can build your applications using only Controllers and Views only.

  • View – the view represents the information displayed to the user.  In Profound UI, views are stored in JSON files and maintained using the Visual Designer Tool.  No manual HTML or JavaScript coding is required.  Each view can have one or more screens (also referred to as record formats).  The screens are built using the various widgets provided by the client-side User Interface library in Profound UI.  The widgets are configured with properties which can be bound to server-side PHP variables.  Binding allows controllers to populate the view with data to display to the user, and to receive a response from the user.

  • Controller - the controller serves as the intermediary between the model and the view.  It interprets the input from the user, informing the model and/or the view to change appropriately.

In Profound UI, controllers and views are loaded and executed only when requested, rather than globally. No assumptions are made by the system regarding what may be needed beyond the minimal core resources, so the system is very light-weight by default. The events, as triggered by the HTTP request, and the controllers and views you design will determine what is invoked.