News Feed
Sections




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

RubySource.com:
PHP to Ruby Modules, Mixins and Ducks
August 16, 2011 @ 09:11:35

In his latest article comparing some of the functionality of PHP to Ruby, Dave Kennedy looks at modules, mixins and ducks and how they compare to PHP's interfaces and abstract classes.

If you have been writing PHP for a few years you will no doubt have come across Interfaces and Abstract classes. They were introduced in PHP5 object model and since have had medium usage in the PHP world. If you Google "PHP Interfaces" you will get some results on the official documentation and the rest saying how pointless they are. Why the divide? I believe it is mainly down to lack of understanding to what interfaces give you. They imply what your classes should do, but that's it. Yep, we are talking programming contracts.

He starts with some code examples of an interface and a class that implements it (to work with PDFs). He makes an abstract class to extend the functionality even further and allow for different kinds of reporting PDFs to be generated. From there he moves into the Ruby world, showing examples of duck typing and modules to avoid duplication (mixins).

0 comments voice your opinion now!
ruby mixin ducktype interface abstract class tutorial


blog comments powered by Disqus

Similar Posts

Stefan Mischook's Blog: Turning on display_errors in WAMP - Video Tutorial

DevShed: Unit Testing in Detail

DevShed: Creating an Administration Area for a Simple Threaded Discussion Forum

Anthony Ferrara: Iterators - Programming With Anthony

Test.ical.ly Blog: Wrapping symfonys functional tests in a PHPUnit test case


Community Events

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


performance introduction voicesoftheelephpant podcast laravel php7 library example extension composer release api symfony2 community version interview application framework series opinion

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