From a4e0494ddf10babc92593c2d0133464da6d98e87 Mon Sep 17 00:00:00 2001 From: Steven Benner Date: Sun, 15 Jul 2012 05:02:06 -0700 Subject: [PATCH] Rewrite of Design Patterns sub-section. --- _posts/05-03-01-Design-Patterns.md | 39 ++++++------------------------ 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/_posts/05-03-01-Design-Patterns.md b/_posts/05-03-01-Design-Patterns.md index 562ddaf..6e87109 100644 --- a/_posts/05-03-01-Design-Patterns.md +++ b/_posts/05-03-01-Design-Patterns.md @@ -2,39 +2,16 @@ isChild: true --- -# Application Design Patterns +## Design Patterns -There are numerous ways to structure your web applications, and you can put as much or as little thought as you like -into architecting your code. But it is usually a good idea to follow to one of the common patterns because it will make -your code easier to manage and easier for others to understand. +When you are building your application it is helpful to use common patterns in your code and common patterns for the +overall structure of your project. Using common patterns is helpful because it makes it much easier to manage your code +and lets other developers quickly understand how everything fits together. -The most common patterns used in PHP development today are the front controller pattern and the MVC pattern (and its -relatives). +If you use a framework then most of the higher level code and project structure will be based on that framework, so a +lot of the pattern decisions are made for you. But it is still up to you to pick out the best patterns to follow in the +code you build on top of the framework. If, on the other hand, you are not using a framework to build your application +then you have to find the patterns that best suit the type and size of application that you're building. * [Architectural patterns on Wikipedia](https://en.wikipedia.org/wiki/Architectural_pattern) * [Software design pattern on Wikipedia](https://en.wikipedia.org/wiki/Software_design_pattern) - -## Front Controller - -The front controller pattern is where you have a single entrance point for you web application (e.g. index.php) that -handles all of the requests. This code is responsible for loading all of the dependencies, processing the request and -sending the response to the browser. The front controller pattern can be beneficial because it encourages modular code -and gives you a central place to hook in code that should be run for every request (such as input sanitization). - -* [Front Controller pattern on Wikipedia](https://en.wikipedia.org/wiki/Front_Controller_pattern) - -## Model-View-Controller - -The model-view-controller (MVC) pattern and its relatives HMVC and MVVM let you break up code into logical objects that -serve very specific purposes. Models serve as a data access layer where data it fetched and returned in formats usable -throughout your application. Controllers handle the request, process the data returned from models and load views to -send in the response. And views are display templates (markup, xml, etc) that are sent in the response to the web -browser. - -MVC is the most common pattern used in the popular [PHP frameworks](https://github.com/codeguy/php-the-right-way/wiki/Frameworks). - -Learn more about MVC and its relatives: - -* [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller) -* [HMVC](https://en.wikipedia.org/wiki/Hierarchical_model%E2%80%93view%E2%80%93controller) -* [MVVM](https://en.wikipedia.org/wiki/Model_View_ViewModel)