Well after a short hiatus for retooling I’m back with another wrap-up of what is going on in the Zend Framework mailing list. Let’s don our thinking caps and dive right in shall we?

This roundup will actually cover 2 weeks since it’s been a while since our last visit together. The traffic level dipped precariously low two weeks ago but rebounded last week to it’s normal healthy level.

  • We will start out with a proposal by Art Hundiak Zend_Application_Context. Surprisingly this did not generate any direct discussion. (Surprising because proposals almost always generate some discussion, even if it’s a request for the proper paperwork to be filed. Art, thanks for the submission, I’m sure the framework team will add it to the proposal bucket.
  • Jayson posted the first of his regular Framework Status messages. These messages are to keep the community abreast of the inner working of the framework development process for those of us on the outside looking in. This new transparency to the process was appreciated by many and several people wrote to say thank you and throw out additional ideas for consideration. All in all, a lot of hand-shaking and back-slapping with a couple of atta-boys thrown in for good measure.
  • Nayana Hettiarachchi posted in Inquiry asking the question that comes round every month or so ”...do you recommend using this frame work on production systems or are you simply putting this out there for preview purposes only?” With the new transparency and regularly scheduled releases, this question should be a little easier to answer going forward. For now, the general consensus is that while it can be used for production development, be aware that the API can change. Jayson wrapped it up nicely with:

So expect change, but remember you are in control.

  • In the same thread, Nick Lo asked the question “isn’t the Zend framework site itself using ZF and if so, it would be interesting to hear of any particular approaches that were used in developing it to protect it from/prepare it for future changes to the framework.” Mike Naberezny responded with an excellent explanation of how framework.zend.com (and for that matter devzone.zend.com) is built on the framework and the techniques he uses to make sure that the site remains stable even after upgrades to the framework.
  • Alexander Hanhikoski started an interesting thread on Zend_Mail attachments. It seems that the example given for creating attachment is a bit confusing and possibly incorrect. (Although no official word on the correctness) The discussion that ensued centered around “return by reference”.
  • James Hartford asked a good question in FCKeditor/ZF. This is a problem that has obviously been tripped over by several people. Since the current version of the framework requires mod_rewrite rules to operate, if you have a component like FCKEditor (or TinyMCE) then you have to turn the mod_rewrite engine off on those directories. The simply solution arrived at is to place an .htaccess file in the root directory of the component with the singe line “RewriteEngine Off” in it. That takes care of the problem.
  • Andi announced in Announcement List Needed (after prodding from Morgan Whitney) that the announcement list is now operational. (For the record, Andi had it setup before Morgan asked the question, he just hadn’t had a chance to tell everybody.) Drop an email to fw-announce-subscribe@lists.zend.com to get subscribed.
  • Thomas Widener started a long and interesting discussion on I18N. His proposal covered I18N as well as L10N and his thought on how they should fit into the framework. The ensuing discussion wandered around discussing caching, arrays and all sorts of technical goodies. In the end, Gavin Vess wrapped it up with a KISS message that outlined his thoughts on a minimalist implementation. Later on, he submitted the proposal Zend_Locale to the proposal bucket. Even later on he proposed Zend_Locale_PreProposal 0.3 which sparked another lengthy discussion. Even later on he posted Zend_Locale Pre-Proposal 0.4. Which did not generate as much discussion but did drive home the reason I usually do these roundups weekly. If I fall asleep at the switch, things move so fast it’s hard to catch back up. :)
  • Willie Alberty started an interesting discussion on Zend_Pdf: Anybody actively using Symbol or Zapf Dingbats fonts?. In the discussion, Willie, Steven and Alexander all chime in to discuss the Dingbats font, backwards compatibility, Unicode and multi-byte encoding. It was an interesting discussion to watch unfold.
  • Piotr Barszczewski posted newb question in which he asked about router actions. Since this question comes up on a regular basis, I figured we’ve cover it here. (Maybe get it in google so the next time the answer will be easier to find) Rob Allen gave the most concise answer when he said:

With the current release you have a few choices:
1. Patch your copy of Zend_Controller_Router
2. Use your own router, such as Akrabat_Controller_Router
3. Wait for the new router that’s coming :)

  • Ralph Schindler started an interesting discussion when he posted Model design / scaffolding survey. His initial questions were querying the community for how people are building objects from databases. Gavin posted an excellent overview of the thoughts of Scaffolding from the Zend Framework point of view. Others joined in the discussion and while it wandered over to database sequences for a moment, it eventually got back on course. Andi chimed in to answer a question posted by Markus Wolf regarding generated code vs. introspection. It seems that the framework team is planning on using database introspection to save the step of generating code. In response to the question of performance, Andi wrapped it up nicely with:

Zend_Cache solves that.

  • Dave Lyon noticed a problem with Zend_Mail. In the thread Zend_Mail and multiple recipients, subjects he points out that it (Zend_Mail) was adding in the Subject header twice in some situations. Gavin pointed out that this issue was already covered in Ticket #64. Matthew Weier O’Phinney later noted that:

I’ve marked this ticket as fixed in SVN. This was an issue with the Sendmail transport and how PHP’s mail() function rewrites mail headers for the recipients list and subject.

  • Jayson posted another Status update in which he discusses the highly anticipated 0.14 release that should be out this week. (The week of June 6th, 2006) In addition to that welcomed news, he talks about routine 3-week releases to get the framework on a regular schedule. He also talks about the new router which he is pretty sure will be in the 0.14 release.
  • Superbiji opened a discussion on Default dirs. In it he expresses his wish that the framework figure out and remember the default directory so that developers don’t have to type as much. (See, I’m not the only lazy developer!) Thomas Weidner pointed out that relative paths also work and that you need to type out the full path each time. Since we were in the neighborhood of laziness, Fabrice Douteaud chimed in on the practice of having to use loadClass() on every class you need and asked why the framework couldn’t figure out which ones needed to be loaded. He even proposed code that he is using to speed things along. The discussion got back on the original track with Martel posting As far as I remember, ZF was meant to be as config-less as possible, so it would be nice to see some defaults like that to be set. Things then veered off into a “how to add an admin section” discussion that in reality discussed why you probably don’t need an admin section in a MVC application. All in all it was a very interesting discussion.
  • Shahar Evron opened a discussion on Redirection handling in the new HTTP client. The question was asked, how should Zend_HTTP_Client handle redirects. Chris Shiflett posted a very good overview of a proposed solution, adhere to the RFC except where everyone else is ignoring it.
  • Paul started the thread LiveUser and the Framework in which he talks about using PEAR’s LiveUser class withing a framework based application. Arnaud Limbourg, a maintainer of the PEAR’s LiveUser class chimed in and discussed some of his thoughts on integrating. Later on in the thread, he also proposed some code that allowed LiveUser to be used in a framework based application. While there details need to be hammered out, this looks like it might be a good solution for anyone who needs this type of functionality.
  • Rob Allen kicked off a discussion when he posted Zend_Config: XML file format. His basic premise is that Zend_Config needs more than just INI support. He briefly discusses YAML but dismisses it because there is no native parser in PHP for it. He then settls in on XML and explores it’s relative merits. Paul M. Jones contributed to the conversation by saying “Another one, perhaps so obvious it is invisible, is a PHP array.” and goes on to expand on why this may be a good format for Zend_Config to support. There was a round of +1’s for Paul’s idea and Rob soon followed up with a post saying that “PHP array reader class Zend_Config_Array is now in the incubator, along with an XML reader class Zend_Config_Xml.” Way to adapt Rob!
  • Daniel O’Connor questioned the process of placing code into SVN without proper unit tests being run. In Continuous Integration / Unit Tests with phpunit-3 & phing he cites an example of a patch that was submitted into SVN without testing that broke other things. Not content to just question, he suggests a possible solution by using phing and phpunit3 together to test things are they are being checked out in a “continuous integration environment”. Sebastian Bergmann +1ed his comments but suggested CuriseControl instead of phing and Chris Hartjes suggested Rephlux.
  • Bjarke Istrup Pedersen tossed out a great idea in Generate GD Image and use it as source for Zend PDF Image when he suggested being able to generate a dynamic image on the fly and include it in a PDF without saving it first. Both Willie and Alexander +1ed the idea and it looks like this one is going to happen pretty quick. Additionally, there was a short discussion on the possibility of a Zend_BarCode class because Bjarke’s original problem was generating bar-codes to insert into PDFs.

And with that, I’ll call it a day. Apologies if I left your favorite thread out or worse yet, misspelled your name. Thanks to all who contributed this week and last to the mailing list. I’ll see you next week!

=C=