I want to write some informative articles on pattern-way design for PHP. Firstly, My main language is not English, I need to warn you there may be some mistakes. Why do the developers need patterns? The reason is simple and someone who has some experience with a procedural code may easily understand the needs for patterned way design. Patterns provide standard shape and methodology for coding process, which aims some level of modulation, increases capabilities for team-work-strategies and/or increase reusability of previous solutions, which all (may) create rapid development and healthy development process. What's MVC? MVC is one of the most popular design patterns of nowadays web-development world. M: Model, V: View, C: Controller, which is compared to CPU by the new learners in the first lesson. Yes, it's aim is similar to CPU. Model aims to simulate a base to access data. This data is mostly database in todays web-development world and simulation is mostly done with a class-based layer like ORM. Some frameworks use ORM in 1 layer, some use in 2-3 layer structure. So what's ORM? What's ORM? ORM is Object Relational Mapping. It creates a "virtual object database", or simulates access to data by some classes. Let me give a very simple example. Let's say you have a table like users, and fields like id, name. You want to access to the name of user with id=2342. Wouldn't it be good if there was such a way: $userObj = new Users(); $username = $userObj->getName(); I know, you see a better way, like creating a static method $users->getUser(2342)->getName(); or $users->getNameOfUser(2342); Depends on your data structure. ORM layer is not limited to data access, they may be for all CRUD, e.g. $userObj->setName("Tolga"); $userObj->save(); or they may have different methods for interaction between tables (like join), because a developer should never forget that, the main job of Relational Databases is to create relations between data. But for sure, some SQLs should be processed directly. Sometimes it's impossible (or very hard) to write some queries with ORM layer, so every ORM layer should have at least one method to let process a query directly. So what's View? View layer is for what's given to the end user. This may include htmls, css, js, graphics or more w3c standarts like rss, svg, xml. In this level, the already processed data is transferred from the controller, and used simply as variables. Some developers integrate templating languages like Smarty into this layer, which is spectacular and not for all projects (at least for me). So what's behind? Controller? Controller does all the logic. This side can be supported with algorithms, can use ORM layer, feeds the View layer, can use helpers, already defined functions, structures. In many frameworks, view is part of controller-object so you simply assign variables like $this->username ="tolga"; and in view layer you access them simply by $username. This part is mostly coding, so anyone who knows PHP-Coding would understand concepts in this part. So what're popular MVC Frameworks for PHP? I used Symfony and Zend previously, checked CakePHP for sometime, but some people say CodeIgniter is the best in performance, which is I've not checked yet. Among all I used I found Symfony as very developed but it has some performance problems. In some popular projects like delicious, I know that Symfony has been used. Is MVC the only pattern way approach Nope, there're many ways like n-tier, strategy pattern, singleton AND I have to say that all of these are not isolated from each other. I mean depending on the needs of a project, MVC can be the structure of a layer in a 3-tier project or the command pattern can be part of controller. In my country people still develop with procedural ways, which turns me mad. So the main sector for pattern way design is in USA and some parts of Europe. I hope I can find a good development job there.