Model-View-Controller
*********************

CodeIgniter is based on the Model-View-Controller development pattern.
MVC is a software approach that separates application logic from
presentation. In practice, it permits your web pages to contain
minimal scripting since the presentation is separate from the PHP
scripting.

* The **Model** represents your data structures. Typically your model
  classes will contain functions that help you retrieve, insert, and
  update information in your database.

* The **View** is the information that is being presented to a user. A
  View will normally be a web page, but in CodeIgniter, a view can
  also be a page fragment like a header or footer. It can also be an
  RSS page, or any other type of “page”.

* The **Controller** serves as an *intermediary* between the Model,
  the View, and any other resources needed to process the HTTP request
  and generate a web page.

CodeIgniter has a fairly loose approach to MVC since Models are not
required. If you don’t need the added separation, or find that
maintaining models requires more complexity than you want, you can
ignore them and build your application minimally using Controllers and
Views. CodeIgniter also enables you to incorporate your own existing
scripts, or even develop core libraries for the system, enabling you
to work in a way that makes the most sense to you.
