News Feed
Sections




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

Dikini.net:
Poor man's macro programming in php (revisited)
August 01, 2006 @ 06:16:38

In refernece to his previous post on macro programming in PHP, vlado is back with this new post answering the question "How exactly can you do macros in php now?"

Macros have (let's say) two main responsibilities - adding syntactic sugar and abstraction of common patterns. The syntactic sugar bit is something which probably should happen at compile time, at least in a weakly typed language like php. So I'll skip them. The abstraction of computation, well this is wat codified design patterns are.

He illustrates what a macro might look like, using the generic functions and partial evaluation patterns to accomplish it. He also shows it being possible with something built around a create_function call.

So what do these example prove? Well, php has decent abstraction mechanisms. The fact that we can do indirect function calls and indirect variable (symbol) resolution can give us useful means to code in different design patterns. How can we make proper macros? Is it too complicated to have something like dylan macros (a nice paper from 1999)
0 comments voice your opinion now!
macro programming design patterns revisited macro programming design patterns revisited


blog comments powered by Disqus

Similar Posts

DevShed: Refactoring the MySQL Abstraction Class with the Active Record Pattern

Nick Halstead's Blog: Programming Tips Series

NetTuts.com: From Procedural to Object Oriented PHP

PHPMaster.com: Explore Aspect Oriented Programming with CodeIgniter, Part 3

Ibuildings techPortal: DPC Radio: Advanced OO Patterns


Community Events





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


application podcast voicesoftheelephpant community introduction package security tool composer library symfony update laravel release language interview version series opinion framework

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