View is easy to be separated from MC,
but how to separate M and C?The difference seems a little vague to me.
I'm using PHP.
View is easy to be separated from MC,
but how to separate M and C?The difference seems a little vague to me.
I'm using PHP.
I would not start developing an MVC framework until the point when I knew what MVC was, very crisply and clearly, and was able to explain the difference between the model and the controller with my eyes closed. The way to do it is to learn from existing frameworks (Cake, Zend, QCubed, etc).
Here is the step-by-step guide to developing a MVC framework using PHP:
http://phpro.org/tutorials/Model-View-Controller-MVC.html
Really easy, good tutorial.
Step 1: spend time contributing to an existing open source MVC framework.
Step 2: start contemplating making your own.
Step 3: stop panicking.
The "model" part of MVC refers to the data access layer, so you should create classes to read from/write to the database. Often it's one model per database "entity", so, say, one class for articles, one class for categories, plus a simple database class is a good idea.
The "controller" part is the general logic, and usually the entry point. Here you check the input and requested page, use the model to find the correct data and store in variables for the view.
The "view" part as you said is quite easy. Just include a file from the controller that mostly consists of HTML but outputs your PHP variables.
Start with the basics:
Understanding MVC Architecture from its Origin (part I) http://learnnewprogramming.com/blog/understanding-mvc-architecture/
To read basics on How MVC returns data to browser go to http://w3mentor.com/learn/php/php-language-basics/how-mvc-returns-data-to-browser/
This could be a good starting point: MVC in PHP is a tutorial covering the basics of MVC.
There's a lot to be said about letting the infinite army of monkeys (like all of us) maintain code that really grabs their attention, and then leveraging that in your own work instead of completely re-inventing the wheel. If you DO decide to create your own MVC framework, I'd encourage you to integrate specialist projects (e.g. an ORM-layer, or templating engine, etc.) that are being developed by people who TRULY LOVE those projects because the result will probably be stronger pieces within your whole, which will ultimately make your framework more successful.
If you look at the MVC's that have been mentioned here (e.g. Zope, Cake, etc.) they all started around roughly the same time when there were no MVC's for PHP, and you see that they all have their own strengths and weaknesses because the developers who created them don't have an equal passion for all facets of their framework.
I say, we're standing on the shoulders of giants anyways, we might as well admit it, incorporate their work into ours, and be honest with ourselves and the world.
-C