Blog Posts
Zend_Form Webinar Wednesday
Just an FYI for anyone interested: I'll be performing a webinar for this week's Zend Wednesday Webinar series on Zend_Form. You can get details on the webinar and how to register for it at the Zend_Form webinar information page.
I'll be covering the design of Zend_Form
, the basic usage and various classes
and plugins available, and internationalization of your forms. Please join me
Wednesday at noon EST!
Zend_Form Advanced Features
I've been working on Zend_Form for the past few weeks, and it's nearing release readiness. There are a number of features that Cal didn't cover in his DevZone coverage (in part because some of them weren't yet complete) that I'd like to showcase, including:
- Internationalization
- Element grouping for display and logistical purposes
- Array support
This post will serve primarily as a high-level overview of some of these features; if you're looking for more in-depth coverage, please review the unit tests. :-)
Backwards Compatibility
Ivo already pointed this out, but I want to point it out again: Boy Baukema writes a very nice entry regarding backwards compatibility on the ibuildings.nl corporate blog.
Backwards compatibility (BC) is a tricky thing to support, even when you strive hard to, as Boy puts it, "think hard about your API" prior to release. Somebody will always come along and point out ways it could have been done better or ways it could be improved. I've had to wrestle with these issues a ton since joining the Zend Framework team, and while it often feels like the wrong thing to do to tell somebody, "too little, too late" when they have genuinely good feedback for you, its often in the best interest of the many users already using a component.
I had the pleasure of meeting Boy last year when visiting the ibuildings.nl offices, and he's got a good head on his shoulders. He does a nice job outlining the issues and a number of approaches to BC; if you develop a project for public consumption, you should definitely head over and read what he has to say.
Burlington PHP Tonight
The Burlington PHP User Group is having another meeting tonight at 5:30pm at Brown & Jenkins Coffee Roasters. From the announcement:
Bradley Holt will be giving a presentation on developing a web application using Zend Framework. Bradley Holt is founder and web developer for Found Line, a local design and development studio which has used Zend Framework in several recent projects. He also works as a software developer for a local non-profit. Before starting Found Line he worked as computer trainer teaching a variety of subjects including Java/JSP, ASP.NET, and PHP
Visit the meeting page for details on location and RSVPs. If you're in the Burlington, VT, area, we'd love to see you there!
Apache HOSTNAME on Clusters
In an effort to debug issues on a cluster, I was trying to determine which machine on the cluster was causing the issue. My idea was that I could insert a header token identifying the server.
My first idea was to add the directive Header add X-Server-Ip "%{SERVER\_ADDR}e
in my httpd.conf
. However, due to the nature of our load
balancer, Apache was somehow resolving this to the load balancer IP address on
all machines of the cluster — which was really, really not useful.
I finally stumbled on a good solution, however: you can set environment
variables in apachectl
, and then pass them into the Apache environment using the
PassEnv
directive from mod_env
; once that's done, you can use the environment
variable anywhere.
In my apachectl
, I added the line export HOSTNAME=\
hostname``. Then, in my
httpd.conf
, I added first the line PassEnv HOSTNAME
, followed by the
directive Header add X-Server-Name "%{HOSTNAME}e"
. Voilá! I now had the
hostname in the header, which gave me the information I needed for debugging.
Zend_Form is ready for testing
I've spent the last couple months gathering requirements for the Zend_Form
component, building a prototype, creating a composite proposal based on existing
proposals and my research, gathering community feedback, and, finally coding the
implementation. It's a testament to the value of Test Driven Development that I
now have 302 unit tests passing covering the codebase… all in just over a
week's time.
So, if you're interested in Zend_Form
, now is the time to start testing it. You
can grab it from subversion, where you'll find it in the incubator. You can find
preliminary documentation on
the Framework wiki.
Tags: zendframework, php, zend_form
2007 Retrospective
2007 was a busy year, both personally and professionally. I won't go into the personal too much, because, well, it's personal, and some of the details are simply inappropriate for blogging material.
Here's the short version:
- One trip to Belgium and The Netherlands.
- Two trips to Israel.
- Two trips to Atlanta, GA (not counting the return trip from Europe, when I was stranded for a day due to storms in the Northeast).
- Three different user groups attended, with three presentations.
- One major Zend Framework release
- One PEAR release.
- One podcast.
- One webinar.
- One book published.
- One conference attended.
What follows is my month-by-month breakdown:
Sqlite Version Mismatch
I ran into an issue recently in testing a site where PDO_SQLITE
was claiming
that it could not read my PDO database files. The only recent change I'd had was
that I'd installed a new version of PHP, and hence a new version of PDO_SQLITE
.
Searching the web (we're not supposed to say googling or googled anymore,
remember ;-)), I found that the issue was that the version of sqlite compiled
into my PHP install was not compatible with the version I used to create the
databases in the first place. Never mind that they're only a micro version or
two different.
So, I was left with a conundrum: I needed to create files compatible with my
PDO_SQLITE
install, but my CLI sqlite tool was incompatible. And if I used
PDO_SQLITE
to create the db file, I'd lose my data, right?
Wrong. And here's what you can do should you find yourself in the same situation sometime.
Zend_Layout and Zend_View Enhanced components now in core
I'm pleased to announce that the Zend_View Enhanced and Zend_Layout components are now in the Zend Framework core. With these two components, you can now create some truly complex views for your application with relative ease.
The two components tackle several view related tasks:
- Layouts, or Two Step Views
- Partials (view fragment scripts with their own variable scope)
- Placeholders (store data and/or markup for later retrieval)
- Actions (dispatch a controller action)
PHP Advent Calendar
When Chris Shifflet contacted me about his idea for the PHP Advent Calendar, I was intrigued; I've occasionally seen entries for the Perl Advent Calendar, and found them uniformly interesting. So far, I've very much enjoyed the entries this year, and have been especially thrilled to see some well-known bloggers blogging on topics we don't normally see them discuss.
Hopefully my entry strikes a chord with someone; best of the holiday seasons to all of you!
Tags: phpcommunity