<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/matthew/templates/matthew/atom.css" type="text/css" ?>

<feed version="0.3" 
   xmlns="http://purl.org/atom/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://weierophinney.net/matthew/rss.php?version=atom0.3" rel="service.feed" title="phly, boy, phly" type="application/x.atom+xml" />
    <link href="http://weierophinney.net/matthew/"                        rel="alternate"    title="phly, boy, phly" type="text/html" />
    <link href="http://weierophinney.net/matthew/rss.php?version=2.0"     rel="alternate"    title="phly, boy, phly" type="application/rss+xml" />
    <title mode="escaped" type="text/html">phly, boy, phly</title>
    <tagline mode="escaped" type="text/html">Ramblings on PHP, Linux, and other Geeky Topics</tagline>
    <id>http://weierophinney.net/matthew/</id>
    <modified>2010-08-21T22:37:14Z</modified>
    <generator url="http://www.s9y.org/" version="1.0.4">Serendipity 1.0.4 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>
    <info mode="xml" type="text/html">
        <div xmlns="http://www.w3.org/1999/xhtml">You are viewing an ATOM formatted XML site feed. Usually this file is inteded to be viewed in an aggregator or syndication software. If you want to know more about ATOM, please visist <a href="http://atomenabled.org/">Atomenabled.org</a></div>
    </info>

    <entry>
        <link href="http://weierophinney.net/matthew/archives/245-Autoloading-Benchmarks.html" rel="alternate" title="Autoloading Benchmarks" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-08-17T13:30:00Z</issued>
        <created>2010-08-17T13:30:00Z</created>
        <modified>2010-08-21T22:37:14Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=245</wfw:comment>
        <slash:comments>39</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=245</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/245-guid.html</id>
        <title mode="escaped" type="text/html">Autoloading Benchmarks</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
During the past week, I've been looking at different strategies for <a href="http://php.net/autoload">autoloading</a> in <a href="http://framework.zend.com/">Zend Framework</a>. I've suspected for some time that our class loading strategy might be one source of performance degradation, and wanted to research some different approaches, and compare performance.
</p>

<p>
In this post, I'll outline the approaches I've tried, the benchmarking stategy I applied, and the results of benchmarking each approach.
</p>
 <br /><a href="http://weierophinney.net/matthew/archives/245-Autoloading-Benchmarks.html#extended">Continue reading "Autoloading Benchmarks"</a>
            </div>
        </content>

        <dc:subject>best practices</dc:subject>
<dc:subject>pear</dc:subject>
<dc:subject>php</dc:subject>
<dc:subject>zend framework</dc:subject>

    </entry>
    <entry>
        <link href="http://weierophinney.net/matthew/archives/244-Applying-FilterIterator-to-Directory-Iteration.html" rel="alternate" title="Applying FilterIterator to Directory Iteration" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-08-16T14:30:00Z</issued>
        <created>2010-08-16T14:30:00Z</created>
        <modified>2010-08-20T19:45:21Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=244</wfw:comment>
        <slash:comments>13</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=244</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/244-guid.html</id>
        <title mode="escaped" type="text/html">Applying FilterIterator to Directory Iteration</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
    I'm currently doing research and prototyping for autoloading alternatives in
    <a href="http://framework.zend.com/">Zend Framework</a> 2.0. One approach
    I'm looking at involves creating explicit class/file maps; these tend to be
    much faster than using the <code>include_path</code>, but do require some
    additional setup.
</p>

<p>
    My algorithm for generating the maps was absurdly simple:
</p>

<ul>
    <li>Scan the filesystem for PHP files</li>
    <li>If the file does not contain an interface, class, or abstract class,
    skip it.</li>
    <li>If it does, get its declared namespace and classname</li>
</ul>

<p>
    The question was what implementation approach to use.
</p>

<p>
    I'm well aware of <code>RecursiveDirectoryIterator</code>, and planned to
    use that. However, I also had heard of <code>FilterIterator</code>, and
    wondered if I could tie that in somehow. In the end, I could, but the
    solution was non-obvious.
</p>
 <br /><a href="http://weierophinney.net/matthew/archives/244-Applying-FilterIterator-to-Directory-Iteration.html#extended">Continue reading "Applying FilterIterator to Directory Iteration"</a>
            </div>
        </content>

        <dc:subject>php</dc:subject>
<dc:subject>spl</dc:subject>

    </entry>
    <entry>
        <link href="http://weierophinney.net/matthew/archives/243-Running-mod_php-and-FastCGI-side-by-side.html" rel="alternate" title="Running mod_php and FastCGI side-by-side" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-08-09T14:45:00Z</issued>
        <created>2010-08-09T14:45:00Z</created>
        <modified>2010-08-15T13:40:29Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=243</wfw:comment>
        <slash:comments>10</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=243</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/243-guid.html</id>
        <title mode="escaped" type="text/html">Running mod_php and FastCGI side-by-side</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
    Because we're in full throes of <a href="http://framework.zend.com">Zend
        Framework</a> 2.0 development, I find myself with a variety of PHP
    binaries floating around my system from both the PHP 5.2 and 5.3 release
    series. We're at a point now where I'm wanting to test migrating
    applications from ZF 1.X to 2.0 to se see what works and what doesn't. But
    that means I need more than one PHP binary enabled on my server...
</p>

<p>
    I use <a href="http://www.zend.com/products/server/">Zend Server</a> on my
    development box; it's easy to install, and uses my native Ubuntu update
    manager to get updates. On Ubuntu, it installs the Debian Apache2 packages,
    so I get the added bonus of familiarity with the configuration structure.
</p>

<p>
    I installed Zend Server some time ago, so I'm still on a PHP 5.2 mod_php
    binary. I have several PHP 5.3 binaries compiled and installed locally for
    running unit tests and sample scripts already -- so the question was how to
    keep my 5.2 mod_php running while simultaneously allowing the ability to run
    selected vhosts in 5.3?
</p>

<p>
    The answer can be summed up in one acronym: FastCGI.
</p>
 <br /><a href="http://weierophinney.net/matthew/archives/243-Running-mod_php-and-FastCGI-side-by-side.html#extended">Continue reading "Running mod_php and FastCGI side-by-side"</a>
            </div>
        </content>

        <dc:subject>apache</dc:subject>
<dc:subject>fastcgi</dc:subject>
<dc:subject>php</dc:subject>

    </entry>
    <entry>
        <link href="http://weierophinney.net/matthew/archives/242-Creating-Zend_Tool-Providers.html" rel="alternate" title="Creating Zend_Tool Providers" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-07-01T13:05:00Z</issued>
        <created>2010-07-01T13:05:00Z</created>
        <modified>2010-07-07T20:31:19Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=242</wfw:comment>
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=242</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/242-guid.html</id>
        <title mode="escaped" type="text/html">Creating Zend_Tool Providers</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
    When I was at <a href="http://www.symfony-live.com/">Symfony Live</a> this
    past February, I assisted <a
        href="http://www.leftontheweb.com/">Stefan Koopmanschap</a>
    in a full-day workshop on integrating Zend Framework in Symfony
    applications. During that workshop, Stefan demonstrated creating Symfony
    "tasks". These are classes that tie in to the Symfony command-line
    tooling -- basically allowing you to tie in to the CLI tool in order to
    create cronjobs, migration scripts, etc.
</p>

<p>
    Of course, Zend Framework has an analogue to Symfony tasks in the <a
        href="http://framework.zend.com/manual/en/zend.tool.html">Zend_Tool</a>
    component's "providers". In this post, I'll demonstrate how you can create a
    simple provider that will return the most recent entry from an RSS or Atom
    feed. 
</p>
 <br /><a href="http://weierophinney.net/matthew/archives/242-Creating-Zend_Tool-Providers.html#extended">Continue reading "Creating Zend_Tool Providers"</a>
            </div>
        </content>

        <dc:subject>php</dc:subject>
<dc:subject>zend framework</dc:subject>

    </entry>
    <entry>
        <link href="http://weierophinney.net/matthew/archives/241-State-of-Zend-Framework-2.0.html" rel="alternate" title="State of Zend Framework 2.0" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-06-04T14:00:00Z</issued>
        <created>2010-06-04T14:00:00Z</created>
        <modified>2010-06-10T19:43:14Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=241</wfw:comment>
        <slash:comments>26</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=241</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/241-guid.html</id>
        <title mode="escaped" type="text/html">State of Zend Framework 2.0</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
    The past few months have kept myself and my team quite busy, as we've turned
    our attentions from maintenance of the <a
        href="http://framework.zend.com">Zend Framework</a> 1.X series to Zend
    Framework 2.0. I've been fielding questions regularly about ZF2 lately, and
    felt it was time to talk about the roadmap for ZF2, what we've done so far,
    and how the community can help.
</p>
 <br /><a href="http://weierophinney.net/matthew/archives/241-State-of-Zend-Framework-2.0.html#extended">Continue reading "State of Zend Framework 2.0"</a>
            </div>
        </content>

        <dc:subject>git</dc:subject>
<dc:subject>php</dc:subject>
<dc:subject>zend framework</dc:subject>

    </entry>
    <entry>
        <link href="http://weierophinney.net/matthew/archives/240-Writing-Gearman-Workers-in-PHP.html" rel="alternate" title="Writing Gearman Workers in PHP" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-05-06T13:00:00Z</issued>
        <created>2010-05-06T13:00:00Z</created>
        <modified>2010-05-13T06:30:39Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=240</wfw:comment>
        <slash:comments>10</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=240</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/240-guid.html</id>
        <title mode="escaped" type="text/html">Writing Gearman Workers in PHP</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
    I've been hearing about and reading about <a
        href="http://gearman.org/">Gearman</a> for a couple years now, but, due
    to the nature of <a href="http://framework.zend.com/">my work</a>, it's
    never really been something I needed to investigate; when you're writing
    backend code, scalability is something you leave to the end-users, right?
</p>

<p>
    Wrong! But perhaps an explanation is in order.
</p>
 <br /><a href="http://weierophinney.net/matthew/archives/240-Writing-Gearman-Workers-in-PHP.html#extended">Continue reading "Writing Gearman Workers in PHP"</a>
            </div>
        </content>

        <dc:subject>gearman</dc:subject>
<dc:subject>php</dc:subject>
<dc:subject>zend framework</dc:subject>

    </entry>
    <entry>
        <link href="http://weierophinney.net/matthew/archives/239-PHP-Invades-Amsterdam;-or,-the-Dutch-PHP-Conference.html" rel="alternate" title="PHP Invades Amsterdam; or, the Dutch PHP Conference" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-04-20T03:58:37Z</issued>
        <created>2010-04-20T03:58:37Z</created>
        <modified>2010-04-20T13:35:46Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=239</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=239</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/239-guid.html</id>
        <title mode="escaped" type="text/html">PHP Invades Amsterdam; or, the Dutch PHP Conference</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
    For the third year running, I'm pleased to be speaking at the <a
        href="http://phpconference.nl/">Dutch PHP Conference</a>, held again in
    Amsterdam this coming 10-12 of June.
</p>

<p style="text-align:center"><a href="http://phpconference.nl/" title="2010 Dutch PHP Conference"><img src="http://weierophinney.net/matthew/uploads/dpc10_speaker.jpg" /></a></p>
 <br /><a href="http://weierophinney.net/matthew/archives/239-PHP-Invades-Amsterdam;-or,-the-Dutch-PHP-Conference.html#extended">Continue reading "PHP Invades Amsterdam; or, the Dutch PHP Conference"</a>
            </div>
        </content>

        <dc:subject>conferences</dc:subject>
<dc:subject>dpc10</dc:subject>
<dc:subject>php</dc:subject>
<dc:subject>zend framework</dc:subject>

    </entry>
    <entry>
        <link href="http://weierophinney.net/matthew/archives/237-A-Primer-for-PHP-5.3s-New-Language-Features.html" rel="alternate" title="A Primer for PHP 5.3's New Language Features" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-04-06T15:10:23Z</issued>
        <created>2010-04-06T15:10:23Z</created>
        <modified>2010-04-14T16:14:26Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=237</wfw:comment>
        <slash:comments>31</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=237</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/237-guid.html</id>
        <title mode="escaped" type="text/html">A Primer for PHP 5.3's New Language Features</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
    For the past month, I've been immersed in PHP 5.3 as I and my team have
    started work on <a href="http://framework.zend.com/">Zend Framework</a> 2.0.
    PHP 5.3 offers a slew of new language features, many of which were developed
    to assist framework and library developers. Most of the time, these features
    are straight-forward, and you can simply use them; in other cases, however,
    we've run into behaviors that were unexpected. This post will detail several
    of these, so <em>you</em> either don't run into the same issues -- or can
    capitalize on some of our discoveries.
</p>
 <br /><a href="http://weierophinney.net/matthew/archives/237-A-Primer-for-PHP-5.3s-New-Language-Features.html#extended">Continue reading "A Primer for PHP 5.3's New Language Features"</a>
            </div>
        </content>

        <dc:subject>oop</dc:subject>
<dc:subject>php</dc:subject>
<dc:subject>zend framework</dc:subject>

    </entry>
    <entry>
        <link href="http://weierophinney.net/matthew/archives/238-Please-Join-Me-At-TEK-X.html" rel="alternate" title="Please Join Me At TEK-X" type="text/html" />
        <author>
            <name>Matthew Weier O'Phinney</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-04-07T13:48:55Z</issued>
        <created>2010-04-07T13:48:55Z</created>
        <modified>2010-04-11T20:59:29Z</modified>
        <wfw:comment>http://weierophinney.net/matthew/wfwcomment.php?cid=238</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://weierophinney.net/matthew/rss.php?version=atom0.3&amp;type=comments&amp;cid=238</wfw:commentRss>
    
        <id>http://weierophinney.net/matthew/archives/238-guid.html</id>
        <title mode="escaped" type="text/html">Please Join Me At TEK-X</title>
        <content type="application/xhtml+xml" xml:base="http://weierophinney.net/matthew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
    I'll be speaking this year at <a href="http://tek.phparch.com/">TEK-X</a>,
    this year's incarnation of the php|tek conference, in Chicago in May.
</p>

<p style="text-align:center;"><a href="http://tek.phparch.com/"
    target="_blank"><img src="http://weierophinney.net/matthew/uploads/TEKX_SpeakerBadge_135x135.png"
    width="135" height="135" title="TEK-X PHP Conference, Chicago, IL, May 18-21"/></a></p>
 <br /><a href="http://weierophinney.net/matthew/archives/238-Please-Join-Me-At-TEK-X.html#extended">Continue reading "Please Join Me At TEK-X"</a>
            </div>
        </content>

        <dc:subject>conferences</dc:subject>
<dc:subject>php</dc:subject>
<dc:subject>tekx</dc:subject>

    </entry>
</feed>