Many people have criticized Twitter’s uptime performance. For the geeks in the audience, this interview provides a good first-time-look at what they’re working with and what they plan to do to fix the problems. I’m rather shocked, actually. Brad Fitzgerald’s presentations on scaling Livejournal (pdf, 1.1MB) cover most …
This article by Jurgen Appello covers the common-sense aspects of source control management — the things that once you understand them are so straightforward that no one seems to bother to write books about them. Of course… how else are you going to learn them…?
I love talking about scaling issues. I’ve seen a lot of brown organic matter hit the rotary air oscillator when companies or websites try to scale up — twitter is one of the more interesting cases because of the small/rapid nature of their transactions, the huge joins that need to …
I was reading the Atlassian Blog when I stumbled upon a post about Selenium. Selenium is a way to do unit testing from the UI, like a browser. Here’s the project page — looks like a cool way to automate testing of UI elements, which is often hard …
Proving that yet again the Mac is the premier development environment for everything web-related, Google has released an App Engine Launcher for OSX, which delivers and includes the App Engine SDK.
(Via ReadWriteWeb.)
There’s an alternative hosting spot, AppDrop for those of us who are on the indefinite waitlist. I’d like to learn a bit of python for the project, but I’ve been a PHP developer for so long that I might not actually use it until they support PHP.
You can …
While we’re waiting for me to recover from my vacation over the weekend… Decorators with Zend Form - Matthew has posted what he hopes will be the definitive Zend Form & Zend Form Decorators tutorial.
And now the fun begins! Today we’re going to really show some of the power of Zend Framework. All the steps that you’ve taken in the previous tutorials will suddenly make sense — you’re going to be set up to authenticate users in a few minutes flat.
If you don’t know basic OOP (Object-Oriented Programming) principles, now would be a good time to go do some reading on them. We’re going to make heavy use of inheritance, as well as overriding. Just keep in mind that PHP is not a strongly typed language.
Let’s get started. For authentication, we’re going to build the form the old fashioned way so that you can get a good example for ‘how it was done’ versus ‘how smoothly it can be done’ with Zend Framework.
Today, let’s take a look at Zend_Db. Zend_Db implements a Table Data Gateway, in which the object is considered to be extended to have the properties of a table, as opposed to a Object Relational Model (ORM) / Data Access Object (DAO) where the object is considered to be a representation of the database object. Philosophy aside, it’s a great tool, and we’re mostly interested in how to use it. It is worth noting that you can use Zend Framework along with the excellent Doctrine ORM… and the syntax is even pretty similar.
The general procedure when setting up Zend_Db is to create a bunch of objects that extend Zend_Db_Table_Abstract. When defining an object, you can define what table it connects to, what the primary key is, and any foreign keys that relate to it. Upon instantiating the object in your code, you can use it to build queries against it’s related table, which returns a collection of row sets for direct use in your applications. Today’s tutorial assumes that you’re very comfortable with looping and other control structures in PHP.
Yesterday we left off with a basic folder structure in a Subversion repository, including the Zend Framework libs. It isn’t really much to look at, and it just doesn’t do anything. Not impressive. Let’s fix that.
Today we’ll be covering the front controller and some basic modules and actions. You still won’t need a database at this point, but you will need to have Apache configured correctly. You’ll also want to have the Zend Framework Reference Guide within easy reach.
Before we get started, make sure that your Apache configuration
If you enjoy the content, consider subscribing to the feed(s).
Post a Comment