PHP 5.3 will be introducing closures to PHP. Closures, also known as anonymous functions, will allow you to declare functions “inline” and store them in variables. While the syntax may seem a bit weird compared to how it is in languages like JavaScript, closures will be a useful addition to the language
Zend_Acl part 3: creating and storing dynamic ACLs
In this third post of the series, I’ll talk about using dynamic ACLs: How to store an ACL in a database, and construct it from there when needed. We will first look at a simple example with users and pages, and then we’ll have a more complex example, involving building a much more complex ACL with inheritance, role types and other stuff.
Practical uses for reflection
You may have heard about the reflection feature in PHP. Simply put, it’s a way to get a list of methods in a class, a methods parameters, or other “internal” things like that. But how is this actually useful for any common task in application development?
Even more PHP mistakes!
I recently wrote a post about three PHP mistakes that can give you a bad headache. The blog readers commented even more mistakes, and there was a whole new article on another site with 8 mistakes of their own! This post is dedicated to the mistakes my readers posted in the comments, and lastly linking to the other mistake article.
Avoiding endless switch-case structures with classes
Imagine the following: you have some form elements that need to render themselves. You have saved them in a database, as your users must be able to modify the forms. You have a bunch of different kinds of elements: a text field, a longer textarea field, maybe a field used for entering dates. How would you determine, which kind of …
GroupFight: My old PHP-based game
First an announcement: During 2008, CodeUtopia had about 120 000 visitors! I think that’s amazing, and I want to thank everyone who has been reading the blog. I’m going to try and keep posting interesting things for you to read this year too. :D Now, to the post: Back in 2003 I wrote a game called GroupFight. The idea started …
Using models as criteria objects for querying the database
If you have written a model layer which separates database access from the rest of the code, you probably know that you may end up with lots of methods like findByName, findByTitle or such, for cases where you want to find records based on specific criterias. You could also use arrays, for example findBy(array(‘title’=>’something’)). However, these are easy to type …
Three PHP mistakes that will cause you debugging nightmares
Here are some PHP mistakes I’ve encountered, which have often been very difficult to track down…
What would make template engines actually useful?
Probably all of us have used template engines in one form or another. Some might even like template engines for whatever reason, but let’s think about it for a moment: are they actually making our lives easier? Most template engines simply wrap PHP (or some other language’s) syntax into their own syntax, and maybe they look a little bit cleaner …
Optimizing Zend Framework and Doctrine applications
I decided to try profiling my quiz application to see if I could speed it up. Not surprisingly, biggest performance penalties came from loading classes and Doctrine’s ORM magic. Here are some findings on how to improve performance.