News Feed
Sections




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

DevShed:
PHP and the Law of Demeter
August 16, 2011 @ 10:20:26

On DevShed today there's a new tutorial looking at how to use dependency injection to help prevent you from breaking the "Law of Demeter" in your application's structure.

When [responsibilities aren't well defined for classes], it's a clear symptom of a common issue known as the "Law of Demeter" breakage. In case the name doesn't ring any bells, the "Law of Demeter" (http://en.wikipedia.org/wiki/Law_of_Demeter) - or the Principle of Least Knowledge - is a paradigm that allows to create loosely-coupled classes, based on a simple concept: each class should be designed to work properly using only the dependencies that it really needs.

He talks about how violation of this law (whether you knew you were or not) can lead to some bad coupling practices. He includes a few classes under a SampleApp that handles the interface between a database and the domain model. The violation of the law comes in when the database and service layers are introduced - a fetch the code does to get an adapter from the service locator rather than directly from the database functionality as it should.

There's code for everything included in the post

0 comments voice your opinion now!
lawofdemeter dependency injection tutorial


blog comments powered by Disqus

Similar Posts

Vidyut Luther's Blog: Adding Subscribers to Campaign Monitor Lists using PHP5 and SOAP

PHPMaster.com: PHP Security: Cross-Site Scripting Attacks (XSS)

PHPEveryDay.com: Zend Framework Tutorials Posted (Sessions)

Developer.com: Build your own MVC Framework: Getting your Framework Up And Running

Hasin Hayder's Blog: Complete oAuth script for Twitter and LinkedIn using PECL oAuth Extension


Community Events





Don't see your event here?
Let us know!


code symfony framework laravel introduction api interview series bugfix list zendserver podcast community threedevsandamaybe voicesoftheelephpant language tips release deployment conference

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework