Monday, June 30. 2008
Since I originally started hacking on the Zend Framework MVC in the fall of
2006, I've been touting the fact that you can test ZF MVC projects by
utilizing the Request and Response objects; indeed, this is what I actually
did to test the Front Controller and Dispatcher. However, until recently,
there was never an easy way to do so in your userland projects; the default
request and response objects make it difficult to easily and quickly setup
tests, and the methods introduced into the front controller to make it
testable are largely undocumented.
So, one of my ongoing projects the past few months has been to create an
infrastructure for functional testing of ZF projects using PHPUnit. This past weekend, I made the
final commits that make this functionality feature complete.
The new functionality provides several facets:
- Stub test case classes for the HTTP versions of our Request and Response
objects, containing methods for setting up the request environment
(including setting GET, POST, and COOKIE parameters, HTTP request
headers, etc).
Zend_Dom_Query, a class for using CSS selectors (and XPath)
to query (X)HTML and XML documents.
- PHPUnit constraints that consume
Zend_Dom_Query and the
Response object to make their comparisons.
- A specialized PHPUnit test case that contains functionality for
bootstrapping an MVC application, dispatching requests, and a variety of
assertions that utilize the above constraints and objects.
Continue reading "Testing Zend Framework MVC Applications"
With PHP 5.3 coming up on the horizon, I'm of course looking forward to
using namespaces. Let's be honest, who wants to write the following line?
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
when the more succinct:
$viewRenderer = HelperBroker::getStaticHelper('viewRenderer');
could be used? (Assuming you've executed 'use
Zend::Controller::Action;' somewhere earlier...)
However, while namespaces will hopefully lead to more readable code,
particularly code in libraries and frameworks, PHP developers will finally
need to start thinking about sane standards for abstract classes and
interfaces.
Continue reading "Migrating OOP Libraries and Frameworks to PHP 5.3"
Friday, June 20. 2008
So, one thing I forgot to mention in my DPC08
wrapup was my involvement with the phpwomen booth. Lig emailed me some months
in advance asking if I'd be an official "booth babe" while at the conference
-- basically wearing a T-shirt to show my support of the movement, and
answering any questions that others might have regarding it. While I haven't
been particularly active with phpwomen, I of course agreed.
Continue reading "phpwomen at DPC08"
Last Friday and Saturday I spent at the Dutch PHP Conference, hosted by
Ibuildings. Unfortunately, I had very
little time to blog while there. I'd prepared my outlines and basic slides
before heading to the conference, but had a large number of screenshots and
images to prepare that kept me up until the wee hours of the morning each
day. In addition, the conference was extremely well organized -- which meant
that any time not spent speaking was spent interacting with attendees or
other speakers -- never a bad thing!
Continue reading "DPC08 Wrapup"
Tuesday, May 27. 2008
We had our Zend Framework/Dojo integration QA today. Aside from some
connectivity issues at the beginning of the presentation, things went
smoothly, and there were some good questions.
A number of people reported missing the slides or that the slides were not
advancing. I'm posting them here; they will also be available on the Zend.com webinars page later
this week.
ZendFramework_Dojo.ppt
Update: For those who want to view online, you can now do so at SlideShare.
Thursday, May 22. 2008
If you've found that your SVN checkouts or svn:externals of
Zend Framework are not working
currently, then you missed the announcements on fw-general and #zftalk; I've
just completed a
Subversion Reorganization
that is part of our new proposal process and 'Extras' offering. Please
follow the link for details on how to update your installs.
Wednesday, May 21. 2008
I'm pleased to announce that
Zend Framework will be partnering
with Dojo Toolkit to deliver
out-of-the-box Ajax and rich user interfaces for sites developed in Zend
Framework.
First off, for those ZF users who are using other Javascript toolkits: Zend
Framework will continue to be basically JS toolkit agnostic. You will still
be able to use whatever toolkit you want with ZF applications. ZF will
simply be shipping Dojo so that users have a toolkit by default. Several
points of integration have been defined, and my hope is that these can be
used as a blueprint for community contributions relating to other javascript
frameworks. In the meantime, developers choosing to use Dojo will have a
rich set of components and integration points to work with.
The integration points we have defined for our initial release are as
follows:
Continue reading "Zend Framework Dojo Integration"
Sunday, May 18. 2008
I've known for some time, but was reluctant to blog about it until the plane
tickets were purchased and in hand: I've been invited to speak at the
Dutch PHP Conference this coming
June:
I'll be presenting two separate sessions:
an all day tutorial
on 13 June 2008 covering Zend Framework, and a regular session on 14 June
2008 covering
Best Practices for PHP development,
which will focus on how to utilize Zend Framework coding standards and
methodologies to help deliver efficient, high quality code for your
organization.
I'm looking forward to meeting old and new friends alike at the conference!
Friday, May 16. 2008
My good friend, Rob, hosts my site for me, in return for helping with server
maintenance. After being on Gentoo for the past three years, though, we
decided it was time to switch to something a little easier to maintain, so
last night we wiped the system partitions and installed Ubuntu server.
I'll say this: the setup is much faster! However, we had a few gotchas that
surprised us -- it didn't setup our RAID array out-of-the-box, which led to
a good hour of frustration as we tried to verify that the install wouldn't
wipe it, and then to verify that we could re-assemble it. (We succeeded.)
Additionally, we second-guessed a few things we shouldn't have, which led to
needing to back out and reconfigure. But what was over a 12 hour install
with Gentoo we accomplished in a matter of a few hours with Ubuntu server --
so it was a huge success that way.
Unfortunately, our mysqldump of all databases... wasn't, a fact we
discovered only after importing it into the new system. I ended up losing my
blog database and PEAR channel database. Fortunately, the PEAR channel
has not changed at all in the past year, so we had an old backup that
worked, and I had a snapshot of my blog database from three weeks ago I was
able to use. As a result, there are a few missing entries, but for the most
part, all works. If you commented on one of those missing entries, my
apologies.
Now that the install is done, I'm also finalizing some design changes to my
blog -- it's time to leave the black and white for more colorful grounds.
Look for a revamp in the coming weeks!
Monday, May 5. 2008
As a continuing part of my MVC series, I've posted a new article on
Form Decorators
up on the DevZone.
I'm hoping this will be the definitive guide to using form decorators. I
cover the design decisions behind them, basics of operation, how to
customize output by mixing and matching standard decorators, and how to
create your own custom decorators. Among the examples are how to create a
table-based layout for your forms (instead of the dynamic list layout used
by default), and how to use a View Script as your form decorator in order to
have full control over your form layout.
So, if you've been playing with Zend_Form and having trouble wrapping your
head around decorators, give it a read!
|
|