<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Professional PHP &#187; pear-installer</title>
	<atom:link href="http://www.procata.com/blog/archives/tag/pear-installer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.procata.com/blog</link>
	<description>PHP Programming, Web Development, PHP Advocacy and PHP Best Practices.</description>
	<lastBuildDate>Tue, 20 Oct 2009 00:57:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Improving Web Application Installation as a Security Imperative</title>
		<link>http://www.procata.com/blog/archives/2005/12/07/improving-web-application-installation-as-a-security-imperative/</link>
		<comments>http://www.procata.com/blog/archives/2005/12/07/improving-web-application-installation-as-a-security-imperative/#comments</comments>
		<pubDate>Thu, 08 Dec 2005 05:18:13 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[pear-installer]]></category>
		<category><![CDATA[php-deployment]]></category>
		<category><![CDATA[php-security]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/?p=159</guid>
		<description><![CDATA[It looks there is a Mambo worm out now.  I read Hackers Hitting Popular Apps a couple of weeks ago and it mentioned that hackers are targeting PHP apps among other things.  Dog bites man for some.  More interesting was this quote:

&#8220;The bottom line is that security has been set back nearly [...]]]></description>
			<content:encoded><![CDATA[<p>It looks there is a <a href="http://www.christopher-kunz.de/serendipity/archives/76-Mambo-worm-in-the-wild.html">Mambo worm</a> out now.  I read <a href="http://news.yahoo.com/s/cmp/20051122/tc_cmp/174400852">Hackers Hitting Popular Apps</a> a couple of weeks ago and it mentioned that hackers are targeting PHP apps among other things.  Dog bites man for some.  More interesting was this quote:</p>
<blockquote><p>
&#8220;The bottom line is that security has been set back nearly six years in the past 18 months,&#8221; Alan Paller, director of research for the SANS Institute, wrote in an E-mail. &#8220;Six years ago, attackers targeted operating systems and the operating system vendors didn&#8217;t do automated patching. In the intervening years, automated patching protected everyone from government to grandma. Now the attackers are targeting popular applications, and the vendors of those applications do not do automated patching.&#8221;
</p></blockquote>
<p>I&#8217;ve advocated <a href="http://www.procata.com/blog/archives/2004/11/24/installing-web-applications/">better web application installation</a> for a while, but as a usability issue.  Increasingly, it is also a security issue.   Just another example of why I think the PEAR installer is  important.  (and why I hope <a href="http://www.procata.com/blog/archives/2005/12/05/zend-framework-webcast/">Zend PHP Framework is released on a PEAR channel</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2005/12/07/improving-web-application-installation-as-a-security-imperative/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework Webcast</title>
		<link>http://www.procata.com/blog/archives/2005/12/05/zend-framework-webcast/</link>
		<comments>http://www.procata.com/blog/archives/2005/12/05/zend-framework-webcast/#comments</comments>
		<pubDate>Mon, 05 Dec 2005 20:42:46 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[active-record]]></category>
		<category><![CDATA[dependency-management]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[pear-installer]]></category>
		<category><![CDATA[zend-framework]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/?p=164</guid>
		<description><![CDATA[I guess I missed the Zend PHP Framework webcast on Friday.  I was looking forward to it, but I signed up a while ago and forgot about it.  By the time I got the reminder email, it was too late.  Fortunately, the recording is now available.  If you have an interest [...]]]></description>
			<content:encoded><![CDATA[<p>I guess I missed the Zend PHP Framework webcast on Friday.  I was looking forward to it, but I signed up a while ago and forgot about it.  By the time I got the reminder email, it was too late.  Fortunately, the recording is <a href="http://www.phparch.com/webcasts/recordings/dec0205_zend.php">now available</a>.  If you have an interest in ZPF or frameworks in general, you should watch this.</p>
<p><a href="http://shiflett.org/archive/171">Chris Shiflet</a> and <a href="http://blog.phpdeveloper.org/?p=23">PHP Developer</a> both have coverage of the webcast.  The webcast even <a href="http://www.loudthinking.com/arc/000544.html">caught some attention</a> from the Rails camp.</p>
<p>I won&#8217;t try to summarize the webcast here, but instead offer a few impressions.</p>
<p>I found the webcast to be interesting, although it didn&#8217;t really answer the primary questions I have about the structure of the front controller and form processing.  ZActiveRecord, ZMail, and ZSearch are fine components, but my interest lies in the controllers because that is the area where there is the least consensus about the state of the art.  One red flag for me was the suggestion of putting business logic in actions.  Nothing but a high level overview was given of the controllers, but this perks my ears as an issue in <a href="http://www.phpwact.org/pattern/model_view_controller">MVC separation</a>.</p>
<p>The coding standards emphasize not reserving global resources.  The framework will not define functions or global constants, it uses <a href="http://www.procata.com/blog/archives/2004/05/24/exceptional-php/">exceptions</a> and doesn&#8217;t reserve __autoload for its own use.  This is very good.  On the other hand, it seems to rely on static methods quite a bit, which I think can burn you over the long run if you are trying to offer a componentized architecture and can make code more difficult to test.  I&#8217;ve been moving away from static methods as much as I can in my own code.  Eventually, I always seem to regret using them.  They lure you in at the beginning with the promise of simplicity and then they punish you later with their inflexibility.</p>
<p>I wonder how many of the components do their own &#8220;connection management&#8221; such as with the ZSearch::open (static methods again)?  This strikes me as an opportunity for a general dependency injection mechanism.  A technique that we are emphasizing more and more in WACT, but which I don&#8217;t think has reached widespread use in the PHP framework world.</p>
<p>One of the stated goals of the Zend Framework is to improve the PHP ecosystem.  The webcast suggests that Zend PHP Framework will play well with others, allowing you to use the components independently, or for example use a different templating system with the framework.  On the other hand, Andi suggested that all components will be distributed in their entirety.  When asked if a stripped down version could be distributed, the answer was &#8220;Why would you want to?&#8221;</p>
<p>I don&#8217;t think a monolithic distribution mechanism will play well with the new ecosystem of components that is rising up based on the PEAR installer&#8217;s new channel capability.  Eventually, the PEAR installer will move into the <a href="http://www.schlitt.info/applications/blog/index.php?/archives/388-Distributing-your-PHP-applications-with-PEAR.html">end user application installation</a> space.  To participate in this, ZPF should be available over a channel.  I think a key success factor for the Zend framework will be the release of individual components via a PEAR channel.</p>
<p>It is much better to be able to declare dependencies on individual packages, rather than on one huge bundle of components.  Monolithic distribution unnecessarily ties together the release schedules of packages that might otherwise have no common dependencies.  Micro-packages on a PEAR channel are the future of <a href="http://www.procata.com/blog/archives/2004/11/24/installing-web-applications/">PHP web application installation</a>.</p>
<p>Overall, I think Zend is taking a good approach to the development of ZPF.  I look forward to learning more.  </p>
<p><strong>Update</strong>: Just as writing tests is an important process element, because testable code is better code, I think that micro package releases are better than monolithic package releases from a process standpoint.  The mere act of writing the components so that they can be independently released highlights unhealthy dependencies.  This, of course, has to be tempered by an <a href="http://www.procata.com/blog/archives/2005/11/06/communicating-a-vision-with-open-source/">overall vision</a> and cross-package duplicate code elimination.  Two areas that have been challenges for PEAR with its political fiefdoms surrounding each package and one reason why <a href="http://www.procata.com/blog/archives/2005/12/01/the-rumors-of-pears-demise-are-greatly-exaggerated/">PEAR is not a framework</a>.</p>
<p>(P.S.  Hurry up and release ZSearch.  I want to use it.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2005/12/05/zend-framework-webcast/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The rumors of PEAR&#8217;s demise are greatly exaggerated</title>
		<link>http://www.procata.com/blog/archives/2005/12/01/the-rumors-of-pears-demise-are-greatly-exaggerated/</link>
		<comments>http://www.procata.com/blog/archives/2005/12/01/the-rumors-of-pears-demise-are-greatly-exaggerated/#comments</comments>
		<pubDate>Fri, 02 Dec 2005 04:49:31 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ezcomponents]]></category>
		<category><![CDATA[pear-installer]]></category>
		<category><![CDATA[zend-framework]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/?p=163</guid>
		<description><![CDATA[Tobias Schlitt has a lengthy comparison of the new ezComponents and PEAR.  He goes to great lengths to show that ezComponents and PEAR do not compete.
I&#8217;ve also seen some ill informed speculation that Zend PHP Framework will kill off PEAR.  Um, not gonna happen.  PEAR is a library, not a framework.  [...]]]></description>
			<content:encoded><![CDATA[<p>Tobias Schlitt has a <a href="http://www.schlitt.info/applications/blog/index.php?/archives/392-eZ-Components-and-PEAR.html">lengthy comparison</a> of the new <a href="http://ez.no/products/ez_components">ezComponents</a> and PEAR.  He goes to great lengths to show that ezComponents and PEAR do not compete.</p>
<p>I&#8217;ve also seen some ill informed speculation that Zend PHP Framework will kill off PEAR.  Um, not gonna happen.  PEAR is a library, not a framework.  Well, PEAR is a repository of libraries, not a framework.  Well, I don&#8217;t know what PEAR is, but its not a framework.</p>
<p>What is a framework?  I wrote a little bit about this in <a href="http://www.procata.com/blog/archives/2004/11/28/the-value-of-mvc/">The value of MVC</a>, but according the the GOF:</p>
<blockquote><p>
A Framework is a set of cooporating classes that make up a reusable design for a specific class of software. &#8230;</p>
<p>The framework dictates the architecture of your application.  It will define the overall structure, its partitioning into classes and objects, the key responsibilities thereof, how the classes and objects collaborate, and the thread of control.  A framework predefines these design parameters so that you, the application designer/implementor, can concentrate on the specifics of your application.  The framework captures the design decisions that are common to its application domain.  Frameworks thus emphasize design reuse over code reuse, though a framework will usually include concrete subclasses you can put to work immediately.
</p></blockquote>
<p>A reusable design for a specific class of software? That doesn&#8217;t sound like PEAR.  It does sound a bit like ezPublish.  Is ezComponents a framework by this definition?  I don&#8217;t know.</p>
<p>Sebastian Bergmann doesn&#8217;t see competition between <a href="http://www.sebastian-bergmann.de/blog/archives/548-Enterprise-PHP-ComponentsFramework.html">ezComponents and ZPF</a>, suggesting that you can swap and combine. Scanning the <a href="http://netevil.org/node.php?nid=633">list of ZPF</a> components and the <a href="http://ez.no/products/ez_components/ez_components_list">ezComponents</a> shows overlap.  Can you swap out ZTemplate for ezComponents Template or ZInputFilter for ezComponents UserInput?</p>
<p>I applaud ezComponent&#8217;s use of the PEAR installer.  I hope that Zend PHP Framework embraces the PEAR installer as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2005/12/01/the-rumors-of-pears-demise-are-greatly-exaggerated/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing PEAR Based Applications</title>
		<link>http://www.procata.com/blog/archives/2005/04/19/installing-pear-based-applications/</link>
		<comments>http://www.procata.com/blog/archives/2005/04/19/installing-pear-based-applications/#comments</comments>
		<pubDate>Wed, 20 Apr 2005 05:05:40 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[pear-installer]]></category>
		<category><![CDATA[php-deployment]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2005/04/19/installing-pear-based-applications/</guid>
		<description><![CDATA[Ok, Greg Beaver&#8217;s work on channels has resurrected my interest in PEAR.  I am interested in providing WACT on a PEAR channel and I&#8217;d like to better integrate WACT with some PEAR packages.  My primary concern is over the installation implications.
I didn&#8217;t find a &#8220;powered by PEAR&#8221; section on the PEAR website.  [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, Greg Beaver&#8217;s work on <a href="http://greg.chiaraquartet.net/archives/38-doing-the-PEAR-thing.html">channels</a> has resurrected my interest in PEAR.  I am interested in providing WACT on a PEAR channel and I&#8217;d like to better integrate WACT with some PEAR packages.  My primary concern is over the <a href="http://www.procata.com/blog/archives/2004/11/24/installing-web-applications/">installation implications</a>.</p>
<p>I didn&#8217;t find a &#8220;powered by PEAR&#8221; section on the PEAR website.  Can anyone recommend some large, widely deployed end user oriented applications based on PEAR? I want to try going through the installation process in some challenging environments.  I&#8217;m just trying to get a feel for best practices and potential problems with installing PEAR and applications that depend on PEAR.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2005/04/19/installing-pear-based-applications/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>PEAR Channels</title>
		<link>http://www.procata.com/blog/archives/2005/03/07/pear-channels/</link>
		<comments>http://www.procata.com/blog/archives/2005/03/07/pear-channels/#comments</comments>
		<pubDate>Mon, 07 Mar 2005 22:08:07 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[pear-installer]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2005/03/07/pear-channels/</guid>
		<description><![CDATA[I am very interested in the new  PEAR channels.  I like where this is going.  I especially like the idea of web application installers (versus library installers).
]]></description>
			<content:encoded><![CDATA[<p>I am very interested in the new  <a href="http://greg.chiaraquartet.net/categories/3-PEAR">PEAR channels</a>.  I like where <a href="http://www.robertpeake.com/archives/48-Getting-Pearified.html">this is going</a>.  I especially like the idea of <a href="http://www.procata.com/blog/archives/2004/11/24/installing-web-applications/">web application installers</a> (versus library installers).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2005/03/07/pear-channels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pear config-set preferred_state beta</title>
		<link>http://www.procata.com/blog/archives/2004/11/24/pear-config-set-preferred_state-beta/</link>
		<comments>http://www.procata.com/blog/archives/2004/11/24/pear-config-set-preferred_state-beta/#comments</comments>
		<pubDate>Wed, 24 Nov 2004 07:21:43 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[pear-installer]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2004/11/24/pear-config-set-preferred_state-beta/</guid>
		<description><![CDATA[I wish i could just do:
pear install Calendar beta
instead of:
pear config-set preferred_state beta
pear install Calendar
pear config-set preferred_state stable
]]></description>
			<content:encoded><![CDATA[<p>I wish i could just do:</p>
<p>pear install Calendar beta</p>
<p>instead of:</p>
<p>pear config-set preferred_state beta<br />
pear install Calendar<br />
pear config-set preferred_state stable</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2004/11/24/pear-config-set-preferred_state-beta/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
