[Solar-talk] Zend version

Matthew Weier O'Phinney mweierophinney at gmail.com
Wed Jan 10 13:32:00 PST 2007


On 1/10/07, Paul M Jones <pmjones at ciaweb.net> wrote:
> > Sorry if this question has been answered before but why is that Zend
> > is basically ripping everything from Solar? Are they allowed to? Every
> > new version of ZF just adds another component that is more or less
> > same as already found in Solar. Well it is good for me because now im
> > reading the ZF docs to understand more about Solar :)
>
> The question has not been asked before; at least, not exactly that
> way.  Here's a little history:
>
>    <http://paul-m-jones.com/blog/?p=197>
>
> The projects share a lot of organizational similarities because of
> their adherence to PEAR standards.  While I worked at Zend, I wrote
> some of the ZF components based on early Solar classes.  The ZF arch-
> class, DB, and View components in particular came from early Solar
> ideas.  The ZF and Solar versions of those components have matured
> along separate paths since then, but those original "genetics" make
> them look alike (although sometimes only superficially).
>
> Much as I'd like to bash ZF (hi Matthew!  hi Rob! ;-)

Hi, Paul!

Just thought I'd contribute to the discussion as well, as I've
contributed to both Solar (although not recently) and ZF (I'm a Zend
employee, for those who don't know).

Paul laid a ton of groundwork for the ZF during his tenure at Zend, and
there was a lot of cross-polination during that period. I haven't done
much with the Zend_Db code (except as a consumer), so I can't really
speak towards that other than without Paul being there, development has
slowed tremendously as we await people with expertise to step in (the
new ZF project manager, Bill Karwin, is a member of the MySQL Guild, and
will be turning his attention to the layer in coming releases).

As for Zend_View, well, if you look at the code, it's pretty much
Savant3/Solar_View. It's a very elegant solution to using PHP as your
'templating' layer, and offers a ton of flexibility. I now maintain the
code base, and, believe it or not, touch base with Paul every now and
then to discuss approaches to issues that crop up.

Because both code bases are BSD licensed, this kind of collaboration can
occur, and it can be very fruitful for both.

> I can't really say they're "ripping" anything other than general
> ideas.  Because the projects were similar to begin with (even though
> Solar was released to the public a year before ZF) they're going to
> have similar-looking solutions to the same problems.

When you start using design patterns, the number of good solutions to
problems decrease (i.e., there are only a handful of solutions that will
appropriately address a given problem). When two code bases use design
patterns to tackle the same problems, chances are they're going to end
up looking very similar. ZF and Solar are both very pattern oriented.

I don't have my hands in everything with ZF. However, I've touched a lot
of the code, and also helped design and plan even more. I know that
Zend_Auth has gone a couple months of debate. Solar's approach *was*
taken under consideration, but the eventual code itself is pretty
different. The controllers in ZF are *much* different than Solar's, and,
if I'm not mistaking, there's actually been some porting from ZF to
Solar for some of the ideas (rewrite router in particular).

All in all, however, many of the issues frameworks tackle are going to
be the same, and compontent naming and solutions are going to be pretty
similar. Don't go assuming that one is copying the other; they may just
be working in parallel and coming to similar conclusions.

> If they *wanted* to take something directly from Solar, it is
> allowed; Solar is released under the BSD license, which is very
> permissive.  There is a lot to be said for cross-pollination; at some
> point in the future I expect that Solar will be able to make use of
> some ZF ideas as well.

Indeed!

> As far as reading ZF docs: their narrative docs are much better than
> Solar's.

One key component of ZF coding standards is that no code goes into core
without end-user documentation. I think this is very important to code
adoption and for new developers using a framework.

-- 
Matthew Weier O'Phinney
mweierophinney at gmail.com
http://weierophinney.net/matthew/


More information about the solar-talk mailing list