More Projects. More Fun. More Better Butter.

You’ll find a better description about Moments Like Today over on Margaret’s blog.  But, it’s another one of my summer time projects. If you feel you’re interested, join the facebook group and/or the vimeo group and prepare to have some fun.

In order to attack this project, I’ll be using PHP, Zend Framework, and a touch of magic to use Vimeo’s API.   For the photo portion of the site, I’ll likely avoid using PHP’s internal graphic tools (for quality purposes) and pull out some trickery with ImageMagick.

Coding Java PHP Zend Framework

PHP Java Bridge vs. Zend Platform Java Bridge

A long time ago I posted some instructions on installing PHP/Java Bridge on Ubuntu and that post is getting quite a few reads, so I figured I’d post a follow up on how it was used.

Over the last year I had been using a Java Bridge from a Zend Framework application to access a Java only API.  And really, between the two bridges there are no differences.  They both work identical, they both work great.  Would I pay Zend for Zend Platform’s Enterprise license? No.  Why? Because both bridges perform the same.  The only differences are:

  1. Zend’s Java bridge already has a function called java_require and the open source PHP/Java Bridge needs you to include a file.
  2. PHP/Java Bridge has a java_cast function, and you need it.  Zend’s Java Bridge does not have, or need this.

With these two differences all you need is a little code in your bootstrap (or somewhere else useful) to cover them and all is golden. Your app should work with both Java Bridges without any issue.

/* no java_require() include the for PHP/Java Bridge */
if ( ! function_exists('java_require') ) {
    include "java/";

/* declare this, it doesn't exist with Zend Java, but is needed for PHP/Java Bridge */
if ( ! function_exists('java_cast')) {
    function java_cast($whatever) {
        return $whatever;

There’s probably a more graceful way of checking and doing this but that’s it, and it’s worked on a multi tiered build environment for over a year now.


Summer Project Details

As part of my previous post, “things to do this summer,” I’ve decided on a not so clever appraoch to proving to myself that “it’s just a language.”

What do I mean by, “it’s just a language?”  Well, let me tell you. On a regular basis I get asked “do you now [language]?” And my answer is usually something along the lines of “Well, I know of it, I’ve touched it a bit, but never done anything real with it.”  But, since I’m a programmer I usually follow it with “It’s just a language.”  So now I’m going to prove to myself that it is in fact “just a language.”


Things To Do This Summer

Here’s an ambitous list:

  1. Learn some Python w/Django
  2. Get myself Railed a bit
  3. Figure out PostgreSQL
  4. Write an iPhone/iPod Touch App
  5. Write an Android App
  6. Finish the Zend Framework version of
  7. Make not suck
  8. Do a top-secret startup.
  9. Do another top-secret startup.
  10. See if I can get this Gravis MouseStickII working.
PHP Zend Framework

Zend Framework 1.8 and Beyond

Zend Framework 1.8 is almost ready and as such, it’s time for me to look into what it’s got.

There’s a good listing of what’s new over here and really on the surface it doesn’t look like much. But as a person who’s been using ZF for quite some time, I’m really happy to see some integrated tools for creating the application structure in a quick and easy way. As long as module creation support makes it in for 1.8, things will be great.

Aside from that, I’ll be interested in seeing what Zend_Navigation has to offer.  Seeing as I’ve had numerous instances with global navigation, crumbs, module based navigation and I’ve had to create something each time – a single one-stop-shop for nav items could prove to be very useful.

Here’s lookin’ to the future.

Update: Zend Framework 1.8 is officially released.

PHP Zend Framework

Some Thoughts on MVC, Bad Design and Confusion

I was reading a post over here about why the ActionStack in Zend Framework is evil.  And I agree. I’ve used ActionStack before in a few older ZF sites (where better alternatives weren’t ready or I just didn’t know about them) but now as the framework has progressed there are many better alternatives to get other ‘actions’ to be executed on every request.

That better alternative is to simply not stack actions. One practice that I’ve been bringing into habit over the last year or so with my coding is to keep my controllers thinned out. As Ryan states: Fat Models, Thin Controllers.  And as things have rolled out over the last few months, I’ve discovered that is a Good Thing™.

Skinny supermodels beware, your jobs are at risk…