Are DB layers like Zend_Db making people forget SQL?


While possibly a great help and a way to speed development up, are database access classes like Zend_Db and others making people forget about SQL?

ActiveRecord, Table Row Gateway and whatnot, are people trying to constrain their thinking inside the bounds given by these implementations?

Read More

Java based IDE = Very bad IDEa


Have you ever used Eclipse or any Eclipse-based IDE, such as Zend Studio Neon or Aptana Studio?

All fine tools, but they have a big problem: Java

Note: this post is a bit old (late 2007), and IDEs have gotten better since then. For example, NetBeans 6.5 is a personal favorite of mine now. If you still want to read me bashing Java IDEs, feel free to continue reading!

Read More

Are spammers masking themselves with innocent posts?


I had recently been getting increased amounts of spam comments and I was wondering why. You probably hadn’t noticed this, though, thanks to WordPress’ excellent spam detection which has so far made a very good job in detecting suspicious comments.

Up until today.

Today, a single spam comment got through the detection. I had received comments exactly like this one earlier, and they had been flagged automatically. Why did this single comment get through?

Read More

Is targeting a single browser okay?


When I encounter a website which is broken in Opera, my browser of choice, I hate it. I know that Opera is perfectly capable of displaying any site Firefox or Internet Explorer can. It makes me feel like lecturing whoever made the site about cross-browser compatibility, valid XHTML, valid CSS, you name it.

But if you think about it, is it okay, on todays web, to target just a single browser or a selection of browsers?

Read More

What are the controller and model in MVC?


A lot of people seem to be slightly confused about what the M and C, Model and Controller, of MVC are, in regards to web applications.

  • What does the Model do?
  • What does the Controller do?

View is what everyone seems to know, though… I wonder why is that so? What is so confusing about Models and Controllers?

Read More

Quick introduction to using Zend_Layout


Lately, the Zend_Layout component has been a very popular topic on #zftalk. It is indeed a very useful component, but a lot of people are having trouble understanding how it works.

Adding to the confusion is the outdated documentation regarding the component proposal and the equally outdated articles about Zend/Xend_Layout.

Let’s demonstrate the usage of the current Zend_Layout implementation, which can be found from the Zend Framework SVN or Snapshots in the Incubator directory.

Note: if you are using the Zend_Layout from 1.0.3, the stuff mentioned here will still work.

Zend Framework 1.5 users: there is an updated version of this article available here

Read More

Localize your site in 3 easy steps


Internationalization and localization means making your site usable in more than one languages. Well, to be honest, you could call a site that’s only in english localized to english visitors too, but in any case…

These two are also known as I18N and L10N. Can you guess where these acronyms come from? The first and last letter from each word and then the number of letters between… Someone’s been feeling really creative ;)

While PHP has an extension for GNU Gettext, which can be used for localization, it isn’t the easiest thing to use. Additionally, PHP can also do number and money formatting based on the locale, but this depends on the server: You must have the locale installed on it. On Shared Hosting accounts, some locales may be unavailable and you may not be able to install them. Not to mention that gettext can be a bit of a hassle to get working.

So, rather than using PHP’s native support, why not use Zend Framework’s Zend_Locale and Zend_Translate?

Read More

The mythical HTTP protocol


The HTTP protocol is what powers todays web. While not useful for most people, knowing how HTTP works is important for those who work with dynamic web sites.

Still, it seems that the protocol is mostly a mystery to a lot of developers and some features of the protocol, such as the accept-language header, aren’t really used.

Read More

Geek humor


Sunday morning, 5 AM…

– Hi
– Haven’t seen you in a while, but I have seen you in a foreach!

Proof against homosexuality: You can’t connect two male cable connectors.

note: I have nothing against sexual minorities, the above is just a funny fact ;) )

Camel-casing is fundamentally flawed

You know how camelCasingWorks, right? Well, I think it’s flawed.

Here is a camel
A camel

So, in fact, camelCasingNeedS to have the last letter in upper case!

Routing and complex URLs in Zend Framework


We were talking about routing on the #zftalk IRC channel. One of the users mentioned that rather than using routes, he was using the __call method in the IndexController.

I then asked him why is he doing that, as I knew routes would be more than a good choice for most kinds of URLs.

I found out that he was working with SEO and he was using a very interesting URL scheme:

This is actually quite interesting thing to think about. Not the SEO part, but how to make ZF understand these kind of URLs. The default routing in Zend Framework works very well for typical Zend’ish URLs like, but if you want to do some more specialized URLs, like the example here, you may need to do some thinking.

Because ZF is so flexible, I can think of four different ways to route complex URLs:

  • Using __call
  • Using a controller plugin
  • Using Zend_Controller_Router_Route_Regex
  • Customizing the Route class

These methods can be used for other things as SEO URLs as well, so let’s check out how to utilize these four and their pros and cons.

Read More