September 20, 2012

PHP MVC Part - I

MVC:

Model
View
Controller

What is MVC?
MVC is a way of coding. how do we distribute functions/classes/files. 

What MVC is not ?
MVC is not any programming language, rather it is a framework/architecture/design schema.
MVC architecture, we can implement in PHP, JAVA, C# and also JavaScript

Analogy:
1. How do you keep things in your kitchen. ?
2. We can keep all tools and utilities scattered on one table - ( No Pattern )
3. We can keep tools categorized by use. i.e. knife,spoon in one box, Plates near sink   - ( some pattern )

Real world example:
1. We have to build Book Store
2. We need to add/remove books
3. Show users list of books
4. Registered user can see preview

Here, we have some logic, lets call them, business logic:
i.e. add/remove books:

Also, we have some-thing to show user
i.e. List of books

Also, we have one rule
i.e. Registered user can see preview


All classes/functions of business logic, we can call: MODEL
All classes/files which helps to render product list, we can call:VIEW
All classes/files/functions which helps to decide/implement rule, we can call: CONTROLLER


Technically:
Model: Encompasses business logic ( Mostly base classes )
View: Helps to present/render data ( Mostly template files + classes which helps to render )
Controller: Helps to decide some rule. like, which page to render, which page not to render

Prime Example of MVC architecture:
Zend
Magento - way to complex to understand

End of part one.

Cheers!!