Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Fat Models and Skinny Controllers Bring Out the Best in Your MVC Framework
Jan 04, 2010 @ 12:09:20

This new article on Developer.com advocates one way of working with the MVC pattern in your framework-based applications - fat models and skinny controllers.

But a framework shouldn't be considered a panacea; it remains paramount for you to continue exploring and implementing best practices, which will further enhance the maintainability, reusability, and readability of your code. One such best practice involves adhering to a design decision that produces "fat models" and "skinny controllers." The term "fat" is derived from the idea of packing as much of the data-related logic into the model as possible while maintaining a streamlined, almost barren controller.

The concept applies to several web application frameworks out there, but they use the Zend Framework to talk about the wrong way - putting most of the application logic in the controllers - and what they think is a more flexible, organized way to handle the code. A bit of code is included to help illustrate their point.

tagged: fat model skinny controller zendframework framework


Chris Hartjes' Blog:
Converting Legacy Apps to CakePHP, Part 3
Dec 31, 2008 @ 12:58:33

Chris Hartjes continues his series looking at converting over legacy applications into a CakePHP environment with this third part, a focus on what can be one of the hardest parts - separating out business logic and presentation logic.

Anyway, onto other matters. As you saw in parts 1 and 2, a bug part in having a successful transition from legacy app to CakePHP is having an environment that is well suited to the use of a framework. Having laid out the groundwork for that switchover, it's time to talk about the part of a refactoring or porting that is most difficult: separating your business logic from your display logic.

He talks about fat models, skinny controllers and flexible views with some code to illustrate each. This method makes the models do most of the work while the controllers are more of a go-between for them and the views. The views, then, are pliable enough to work with whatever data might be thrown at them.

tagged: legacy application cakephp series fat model skinny controller view flexible