<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Blog entries tagged sflive2010 :: mwop.net</title>
  <updated>2010-02-21T18:53:00-06:00</updated>
  <generator uri="https://getlaminas.org" version="2">Laminas_Feed_Writer</generator>
  <link rel="alternate" type="text/html" href="https://mwop.net/blog/tag/sflive2010"/>
  <link rel="self" type="application/atom+xml" href="https://mwop.net/blog/tag/sflive2010/atom.xml"/>
  <id>https://mwop.net/blog/tag/sflive2010</id>
  <entry xmlns:xhtml="http://www.w3.org/1999/xhtml">
    <title type="html"><![CDATA[Symfony Live 2010]]></title>
    <published>2010-02-17T11:39:43-06:00</published>
    <updated>2010-02-21T18:53:00-06:00</updated>
    <link rel="alternate" type="text/html" href="https://mwop.net/blog/232-Symfony-Live-2010.html"/>
    <id>https://mwop.net/blog/232-Symfony-Live-2010.html</id>
    <author>
      <name>Matthew Weier O'Phinney</name>
      <email>contact@mwop.net</email>
      <uri>https://mwop.net</uri>
    </author>
    <content xmlns:xhtml="http://www.w3.org/1999/xhtml" type="xhtml">
      <xhtml:div xmlns:xhtml="http://www.w3.org/1999/xhtml"><xhtml:p>This week, I've been attending <xhtml:a href="http://www.symfony-live.com/">Symfony Live</xhtml:a> in Paris, speaking
on integrating Zend Framework with Symfony. The experience has been
quite rewarding, and certainly eye-opening for many.</xhtml:p>
<xhtml:p>To be honest, I was a little worried about the conference — many
see Symfony and ZF as being in competition, and that there would be
no cross-pollination. I'm hoping that between <xhtml:a href="http://fabien.potencier.org/">Fabien</xhtml:a>, <xhtml:a href="http://www.leftontheweb.com/">Stefan</xhtml:a>, and myself, we helped
dispel that myth this week.</xhtml:p>
<xhtml:p>The fact of the matter is that no single project can be fully
comprehensive, and do everything perfectly. In my examinations of
different frameworks, PHP and otherwise, the places where they most
differ and which generates the most loyalty amongst users are the
MVC approaches and tooling support. In good frameworks, this is
just a portion of the code, and the remainder is in support
libraries or plugins that extend that functionality.</xhtml:p>
<xhtml:p>This is true of both Symfony and Zend Framework. Symfony's
development team has chosen to focus on a very specific core of
functionality related to the MVC approach, which makes their
maintenance job easier, and leads to a stable product. Zend
Framework's MVC implementation is offered as a group of separate
components, with components such as <xhtml:code>Zend_Application</xhtml:code>
and <xhtml:code>Zend_Tool</xhtml:code> helping to bring cohesion and structure
to them.</xhtml:p>
<xhtml:p>What this means is that once you've developed the basic
infrastructure of your application, the scaffolding, you're now
left with decisions about how to implement the actual functionality
of the application itself. The problem as I see it is: how do you
do that development? Many developers are myopic and will not look
beyond the framework they have chosen for for development. This can
lead to multiple implementations of the same code, and often leads
to incomplete implementations as well.</xhtml:p>
<xhtml:p>My feeling is that whenever you find yourself about to write new
code, look to see if somebody else has written the code already.
Anybody — don't limit yourself to your framework of choice. If I
want to do serious HTML sniffing, validation, and cleanup, I go to
<xhtml:a href="http://htmlpurifier.org/">HTMLPurifier</xhtml:a>; if I want a
workflow component, I check out <xhtml:a href="http://www.ezcomponents.org/docs/api/latest/introduction_Workflow.html">
eZ Components Workflow</xhtml:a>; I always check <xhtml:a href="http://pear.php.net/">PEAR</xhtml:a>.</xhtml:p>
<xhtml:p>This week, I tried to spread this message within the <xhtml:a href="http://symfony-project.org">Symfony</xhtml:a> community, showing them
how easy it is to integrate ZF components within Symfony projects.
The integration itself is simple: instantiate the Zend autoloader,
and start using ZF classes. This same technique can be used to load
PEAR, or eZComponents, or Doctrine 2, etc. The trick is getting out
of the "Not Invented Here" syndrome, letting go of your ego, and
using <xhtml:em>other</xhtml:em> people's code.</xhtml:p>
<xhtml:p>(Yes, I know we have code in ZF duplicating functionality in
other libraries; in most cases, we try and offer at least a new
approach to the problem — but we could do better.)</xhtml:p>
<xhtml:p>Fabien also made an interesting announcement. During a Q&amp;A
session with the Symfony core team, he said that Symfony 2 will not
write re-invent the wheel when it doesn't need to — and announced
that Symfony 2 will be using <xhtml:code>Zend_Log</xhtml:code> and
<xhtml:code>Zend_Cache</xhtml:code> instead of rewriting the current Symfony
components. I find this admirable — and it's something I'm hoping
to do in a few places with Zend Framework 2.0 as well, as I know
there are features and code that others have, quite simply, written
better.</xhtml:p>
<xhtml:p>One last note in this ramble: With the various "2.0" versions of
frameworks, most projects are learning from both mistakes made as
well as from the usage patters of the developers adopting them. One
of those lessons, to my mind, is that no one framework can do it
all well and by themselves. I fully expect to see the next
generation of frameworks making it trivial to pull features from
other frameworks and libraries in order to fill out
functionality.</xhtml:p>
<xhtml:div class="h-entry"><xhtml:img class="u-photo photo" width="50" src="https://avatars0.githubusercontent.com/u/25943?v=3&amp;u=79dd2ea1d4d8855944715d09ee4c86215027fa80&amp;s=140" alt="matthew"/> <xhtml:a class="u-url u-uid p-name" href="https://mwop.net/blog/232-Symfony-Live-2010.html">Symfony Live
2010</xhtml:a> was originally published <xhtml:time class="dt-published" datetime="2010-02-17T11:39:43-06:00">17 February 2010</xhtml:time> on
<xhtml:a href="https://mwop.net">https://mwop.net</xhtml:a> by <xhtml:a rel="author" class="p-author" href="https://mwop.net">Matthew Weier
O'Phinney</xhtml:a>.</xhtml:div>
</xhtml:div>
    </content>
  </entry>
</feed>
