Events with Dynamic Handlers, Simplified
Elgg’s event systems are based on registering callables to handle certain event names. As the codebase is still heavily procedural, most event handlers in the core and 3rd party plugins are global...
View ArticleOn Frameworks
Building any non-trivial app, one of the toughest decisions to make is which development framework to base your work on. And there’s no way around this decision once you realize there’s no such thing...
View ArticleWhat, when, and how is your IDE telling you?
A programmers.stackexchange question basically asks if there’s an ideal frequency to compile your code. Surely not, as it completely depends on what kind of work you’re doing and how much focus you...
View ArticleGet rid of variable variable syntax
Uniform Variable Syntax was voted in (almost unanimously) for PHP6 PHP7 and introduces a rare back compatibility break, changing the semantics of expressions like these: // old meaning // new meaning...
View ArticleElgg’s Path Forward
Like many older PHP projects, Elgg has lots of problems with tight coupling, procedural patterns, and untestability; and has a very web 1.9 model: spit out full page, add a little Ajax. The good news...
View ArticleFrameworks and Developer Happiness
Jake Archibald tweeted this comic expressing (I’m interpreting here): There’s a difference between “using libraries” and “using frameworks” Even if you don’t understand the components themselves, when...
View ArticleBug Fixes: the Hidden Value of JS Libraries
Paul Irish points out a huge value added from jQuery that few people (even the jQuery home page) seem to acknowledge, which is that it transparently works around dozens of browser bugs. If you consider...
View ArticlePass all the Breakpoints
When modifying a system without adequate tests, I found it helps to include debugger breakpoints in my manual testing checklist: For each change I make, I add a breakpoint after the modified line, and...
View ArticleEvents and Dependency Injection
The Laravel podcast folks mentioned a backlash about firing events in controllers, and I would guess those arguments were based on the notion that events can be used as a sneaky way of using global...
View ArticlePlugin-based Systems (and Events)
Modern application design is solved! OK, well we at least have a set of camps with their own principles, tools, and paradigms leading us toward the light. One might be “build some components, wire them...
View Article