News Feed
Sections




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

Ivo Jansch's Blog:
Mixins in PHP
August 25, 2006 @ 08:02:33

In his latest post today, Ivo Jansch talks about a concpt from Ruby that he likes and wanted to try to implment in PHP - mixins.

Mixins are a way of 'mixing in' functionality of other classes. A kind of 'multiple inheritance' like approach, only without actual inheritance. It is similar to interfaces, but interfaces only tell you that an object must implement certain methods, whereas mixins also provide an implementation.

To help clear it up a bit he links to two articles on the topic. He gives some examples, though, of how it all works by creating a mixin class (Alertable) and the wy to apply it (in the Hello class). The key between the two is the Object class he's created. It allows the two other classes to work with each other without the need for cumbersome includes or passing around objects. All methods are magically available to the Hello object.

Of course, it's not a perfect implementation because PHP just can't do some things, but he includes a few of these things to watch out for in using this method.

0 comments voice your opinion now!
mixin ruby php5 class alert multiple inheritance mixin ruby php5 class alert multiple inheritance


blog comments powered by Disqus

Similar Posts

Brian Nelson's Blog: Reverse Proxy in PHP5, Rev2

Nick Halstead's Blog: 10 Reasons why PHP is still very much alive

Nick Halstead's Blog: Simple use of DIGG API for your blog

Ian Barber's Blog: Book Review: Expert PHP 5 Tools

The Shadow Fox Network: Creating A Scaffold-like Class in PHP or An Automatic CMS For a Table


Community Events

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


composer podcast list application series introduction language yii2 api interview project symfony community configure framework php7 laravel example part2 opinion

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