Stumping for Solar

Joe Stump writes a good MVC overview at OnLamp.com in this article. He’s kind enough to mention my Solar project in one of the opening paragraphs:

As of this writing, there are very few true MVC frameworks written in PHP. In fact, there is only one that I know of, Solar, that is entirely pure PHP 5 code. Another one out there is Cake, which is trying to be the “Ruby on Rails of PHP.” I, personally, have a few problems with both of these frameworks. Both Solar and Cake fail to leverage existing code in PEAR, Smarty, etc. Cake appears a bit disorganized at the moment. Finally, Solar is the work of mostly a single person (not that Paul isn’t a great coder or person, but there is only a single gatekeeper at the time of this writing). These may not be issues that concern you, and if they don’t concern you, by all means check these two out.

I’m thankful for the mention, but I want to nitpick a bit. πŸ˜‰

That Solar does not use PEAR: Solar does not use PEAR code, because most PEAR code (especially for the parts that Solar needs) are not E_STRICT compliant for PHP5. Because Solar aims for strict PHP5, reuse is not really an option.

Regarding Smarty reuse: Solar uses the Savant3 template system instead of Smarty. Of course, I wrote Savant too, so this may not count so much in Joe’s eyes. πŸ˜‰

That Solar is the work of one person: Well, this part is true in the way he means it; I’m the founder, and pretty much the only author on the project (see below for caveats). I take a lot of direction and input from Solar users and commenters, but only insofar as their opinions match the foundational concepts of Solar to begin with.

The benefit of the “one person” model, at least in the beginning, is that the project has evidence of conceptual integrity (as outlined by Fred Brooks in The Mythical Man Month).

The drawback is that one person can only do so much work over time. If other people want to help, I’m all for it. However, my experience has been that it takes people a long time to contribute new features to a project, usually (1) after they have used and picked it apart over an extended period, and (2) when it has solved other problems for them, but fails to solve an additional related problem. (Bug reports are a different beast. πŸ˜‰

Solar, as a public project, has only been around since February 2005. Six months of an in-development project is not really long enough for major contributions to arrive en masse (9 to 12 is usually more like it). I’m very happy for the help I have received so far, though:

  • Clay hosts the site and acts as sounding board
  • Matthew authored Solar_Filter and Solar_Form_Load_Xml
  • Jean-Eric is the first translation contributor
  • Travis as the “loyal opposition” to simplicity and brevity πŸ˜‰
  • Everyone else on mailing list πŸ™‚

[UPDATE] When I say above that Solar doesn’t reuse PEAR code, I mean the libraries. Solar is installed and upgraded using the PEAR installer, and is distributed via a PEAR channel. The entire PHP world has Greg Beaver to thank for recent and spectacular developments on that front. πŸ™‚

Are you stuck with a legacy PHP application? You should buy my book because it gives you a step-by-step guide to improving your codebase, all while keeping it running the whole time.

7 thoughts on “Stumping for Solar

  1. Hi, Jean-Eric — Regarding a pitch to Stump on Savant: Maybe I will. I think he’s pretty much sold on Smarty, though. πŸ™‚

  2. All,

    I think Paul does great work and I want to say I understand WHY Paul doesn’t reuse PEAR code (having the same problems at work), but that doesn’t mean there isn’t great code in PEAR that could have made Paul’s job easier in writing Solar (not to mention more documentation and testing compared to Paul’s rewrite).

    I was playing the Devil’s advocate. And I think my points are valid, though a bit pragmatic.

    Sorry if you took it the wrong way Paul! Keep up all the good work you do! πŸ˜€

    –Joe

    p.s. ieure pushes your Savant pretty hard at work.

  3. I am sold on Smarty. It works for my needs and it something I can easily hand off to designers (we work with an outside design firm) without worrying about them breaking my scripts in any significant manner. Also, I’ve got about 300-500 templates that are all Smarty so going back now would … ummm … suck.

    Also, Paul, I understand WHY you don’t use the PEAR code. I just think it’s a lot of extra coding effort on your part to redo it all. I’ve had similar frustrations with PEAR and it’s lack of PHP5’ness.

    Keep up the good work and take care!

    –Joe

  4. It’s funny that you mention this. It was that post on OnLamp that pointed me in the direction of Solar. I look forward to using it on my next project. I hope it scales well!

Leave a Reply

Your email address will not be published. Required fields are marked *