News Feed
Jobs 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

Ilia Alshanetsky's Blog: Taking suggestions for the filter extension

php|architect: Free PHP 5 Certification at php/db|works

Hasin Hayder's Blog: My book on OOP-PHP5 has been published

Felix Geisendorfer's Blog: Assert the yummyness of your cake

Padraic Brady's Blog: Any Behaviour-Driven Development Tools for PHP?


Community Events











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


symfony2 code composer install opinion hhvm framework hack dependency podcast security component series package language introduction facebook release application unittest

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