<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Thu, 08 Jan 2009 02:36:12 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPro.org: Application Configuration]]></title>
      <guid>http://www.phpdeveloper.org/news/11342</guid>
      <link>http://www.phpdeveloper.org/news/11342</link>
      <description><![CDATA[<p>
<i>Kevin Waterson</i> has posted <a href="http://www.phpro.org/articles/Application-Configuration.html">a new tutorial</a> today looking at a key part of any web application - the configuration settings and how they can be stored.
</p>
<blockquote>
PHP applications come in many shapes and sizes. Some used locally from command line, and more commonly, for web based applications. More often than not, regardless of size or type, some form of configuration variables will be stored for global access. [...] Each options has its pros and cons. Here each of these options is explored to see which method is right for your application. 
</blockquote>
<p>
He looks at four different options:
</p>
<ul>
<li>an ini file that can be parsed/modified directly by PHP
<li>an XML file slightly more complex, but still simple for PHP to use
<li>a PHP file with things like PHP arrays defining settings
<li>and a database with one or more configuration tables
</ul>
<p>
Each type comes with some example code and format to give you an idea of how they'd work.
</p>]]></description>
      <pubDate>Tue, 04 Nov 2008 12:09:17 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Dave Marshall's Blog: Landing a PHP job Part 1: Technical Knowledge and Skills]]></title>
      <guid>http://www.phpdeveloper.org/news/10990</guid>
      <link>http://www.phpdeveloper.org/news/10990</link>
      <description><![CDATA[<p>
<i>Dave Marshall</i>, a developer from Hull, England, has <a href="http://www.davedevelopment.co.uk/2008/09/08/landing-a-php-job-part-1-technical-knowledge-and-skills/">posted a few recommendations</a> he thinks could help you land that next PHP job.
</p>
<blockquote>
After reading this <a href="http://groups.google.com/group/phpnw/browse_thread/thread/f42a1b18d39c8ce">thread</a>, I thought I'd spend some time writing about what I feel are some measures you can take to landing a job in PHP. This first part is going to concentrate on the kind of technical matters I think any PHP developer should at least have knowledge of, if not some kind of experience.
</blockquote>
<p>
He suggests: as much programming experience as possible, experience with the full development lifecycle, knowing how to work with external libraries and frameworks, being able to adapt to development tools, knowing web application security, and some work with web services and a touch of system administration. He's not saying that you have to have all of these - just that the more you know, the better off you could be.
</p>]]></description>
      <pubDate>Tue, 09 Sep 2008 11:16:30 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stefan Esser's Blog: Suhosin Updates - Improved Randomness & LAZY Symbol Loading]]></title>
      <guid>http://www.phpdeveloper.org/news/10892</guid>
      <link>http://www.phpdeveloper.org/news/10892</link>
      <description><![CDATA[<p>
<i>Stefan Esser</i> has released a new update (really two, but one is the latest) to his <a href="http://www.suhosin.org/">Suhosin patch</a> for PHP - version 0.9.27.
</p>
<p>
The previous update (0.9.26) updated the utility with an improved randomness fixing a few issues with an ini setting and the uploadprogress extension as well as adding in a few new settings and updates to the randomizing functions that come included in PHP.
</p>
<p>
The 0.9.27 update (the most current) updates the patch with a lazy loading change that allows it to work correctly on systems that have it disabled by default (causing the previous patch to not work).
</p>
<p>
You can grab this latest release, 0.9.27, from <a href="http://www.suhosin.org/">the suhosin website</a>.
</p>]]></description>
      <pubDate>Mon, 25 Aug 2008 12:06:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Brian DeShong's Blog: Small news that's big to me: my PHP Testfest submissions made it into 5_3!]]></title>
      <guid>http://www.phpdeveloper.org/news/10410</guid>
      <link>http://www.phpdeveloper.org/news/10410</link>
      <description><![CDATA[<p>
Congrats to <i>Brian DeShong</i> for having his submissions from this year's TestFest be <a href="http://www.deshong.net/?p=76">included in the next release</a> of PHP, version 5.3's build.
</p>
<blockquote>
Someday I'll look back on this post and think it's super lame, but my recent submission of two tests for PHP's <a href="http://php.net/putenv">putenv()</a> function made it into PHP_5_3! I've officially made a contribution it's a red letter day, folks. Without <a href="http://atlantaphp.org/">Atlanta PHP</a> and <a href="http://testfest.php.net/">PHP's Testfest</a>, none of this would have been possible.
</blockquote>
<p>
His tests ran with putenv() and the safe_mode_allowed_env_vars/safe_mode_protected_env_vars settings in use. You can see the inclusion in <a href="http://news.php.net/php.cvs/50412">this commit message</a> (by <i>Lars Strojny</i>).
</p>]]></description>
      <pubDate>Fri, 13 Jun 2008 10:25:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Naberezny's Blog: My First php|architect Article (Zend Framework)]]></title>
      <guid>http://www.phpdeveloper.org/news/5294</guid>
      <link>http://www.phpdeveloper.org/news/5294</link>
      <description><![CDATA[<p>
If you just can't get enough information on the <a href="http://framework.zend.com">Zend Framework</a> and are looking for a good overview of where it's come from and where it's going, you should check out the latest issue of <a href="http://www.phparch.com">php|architect magazine</a> with the cover article from <i>Mike Naberezny</i>.
</p>
<p>
From <a href="http://www.mikenaberezny.com/archives/46">his blog</a>:
</p>
<quote>
<i>
<p>
In the article, I begin by introducing Zend's motivations for creating a framework and how it relates to their <a href="http://www.zend.com/php_collaboration_project">PHP Collaboration Project</a>. More information on these topics can be found on the Zend Framework <a href="http://framework.zend.com/">website</a>. I then dive into a tutorial where I take a business scenario and show how the components included in the Zend Framework can be put to work.
</p>
<p>
The article demonstrates a workflow where invoice data is retrieved from a web service, an invoice in PDF format is then built from that data, and finally the resultant file is emailed to a customer. The <a href="http://framework.zend.com/manual">components</a> Zend_XmlRpc_Client, Zend_Pdf, Zend_Mail, and Zend_Search_Lucene are explored along the way.
</p>
</i>
</quote>
<p>
You can purchase both a print and electronic (PDF) copy directly from <a href="http://phparch.com/issue.php?mid=79">the php|architect</a> site - no need to subscribe and a single issue only costs $3.50 USD.
</p>]]></description>
      <pubDate>Sat, 03 May 2008 07:06:06 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Naberezny's Blog: Request/Response or Bust]]></title>
      <guid>http://www.phpdeveloper.org/news/5251</guid>
      <link>http://www.phpdeveloper.org/news/5251</link>
      <description><![CDATA[<p>
In a response to <a href="http://www.phpdeveloper.org/news/5243">these comments</a> made by <i>Paul Jones</i> concerning the Prado framework, <i>Mike Naberezny</i> shares his thoughts on the framework, the "PHP way", and how the majority of site functionality out there can really be divided up pretty simply.
</p>
<quote>
<i>
<p>
RADO is getting some new attention because it was completely revamped earlier this month. It's certainly matured considerably since the contest and is the most well-known component framework for PHP. However, in all that time since PRADO was first introduced, the idea of a component framework hasn't been adopted by the majority of PHP developers. Why is that?
</p>
<p>
Although PRADO is a nice piece of software, Paul surmises that a component model as used by Microsoft .NET (Visual Web Developer now free!) and its close cousin PRADO is not the "PHP way" or "PHP spirit". For the most part, I agree with this. Although, I don't think it's necessarily a PHP-specific issue. I think it speaks to a larger architectural decision - how far to abstract out the HTTP request/response paradigm.
</p>
</i>
</quote>
<p>
He <a href="http://www.mikenaberezny.com/archives/45">summarizes</a> the functionality in three different methods of handling: "page/file based", "action based", and "component based". He also notes that the interesting fact is that the "page/file based" method seems to be so dominant in the PHP world, only emphasizing the fact that PHP is more of a "get it done" language than anything.
</p>]]></description>
      <pubDate>Sun, 27 Apr 2008 06:47:16 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Make Me Pulse Blog: PHP6, Unicode and TextIterator features]]></title>
      <guid>http://www.phpdeveloper.org/news/9796</guid>
      <link>http://www.phpdeveloper.org/news/9796</link>
      <description><![CDATA[<p>
On the Make Me Pulse blog, there's <a href="http://blog.makemepulse.com/2008/03/13/php6-unicode-and-textiterator-features/">a look at</a> PHP6's support of Unicode in the SPL (Standard PHP Library) TextIterator handler.
</p>
<blockquote>
I've just install the last version of <a href="http://snaps.php.net/">PHP6 dev</a> and I've decided to test the famous new feature, the PHP Unicode Support. I will not explain new things about PHP6 or Unicode or TextIterator, it's just my discoveries test on this features.
</blockquote>
<p>
He <a href="http://blog.makemepulse.com/2008/03/13/php6-unicode-and-textiterator-features/">steps through</a> the process he followed - enabling Unicode support, testing various output methods (including just an echo and using the TextIterator) as well as some of the manipulation methods (next/first/current) that can be used to get certain characters out of a string.
</p>]]></description>
      <pubDate>Fri, 14 Mar 2008 09:32:34 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Naberezny's Blog: Symfony Templates and Ruby's ERb]]></title>
      <guid>http://www.phpdeveloper.org/news/4865</guid>
      <link>http://www.phpdeveloper.org/news/4865</link>
      <description><![CDATA[In his <a href="http://www.mikenaberezny.com/archives/40">latest blog entry</a>, <i>Mike Naberezny</i> takes a look at the <a href="http://symfony-project.com/">Symfony framework</a> and shares some of his opinions on it.
<p>
<quote>
<i>
One thing that I think Symfony gets right is that it appears to use partitioned PHP code for its templates, in the spirit of <a href="http://www.paul-m-jones.com/">Paul</a>'s <a href="http://www.phpsavant.com/">Savant</a> system.
<p>
I noticed in the Symfony demo that there is no separation of scope between variables passed to the template from the controller and local variables in the template. I'd like to see them scoped properly ("$this->products") but I can certainly understand why they did it this way. Using "$this->" in the template everywhere quickly gets messy.
</i>
</quote>
<p>
He <a href="http://www.mikenaberezny.com/archives/40">mentions</a> a few other items he saw as well, including a way to correct the above mentioned problem (two ways - one more single-instance, the other more global).]]></description>
      <pubDate>Wed, 20 Feb 2008 07:12:36 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[WebMonkey: A Truly del.icio.us API]]></title>
      <guid>http://www.phpdeveloper.org/news/4851</guid>
      <link>http://www.phpdeveloper.org/news/4851</link>
      <description><![CDATA[On the WebMonkey site today, there's <a href="http://www.hotwired.com/webmonkey/06/07/index2a.html">a new tutorial</a> that looks at one of the most "pervasive" sites to come along in a long time, <a href="http://del.icio.us/">del.icio.us</a> and how to interact with it's API via PHP.
<p>
<blockquote>
<i>
Who's that with the catchy URL that's getting all the clicks?
<p>
Why, it's del.icio.us! No matter where you are on the "Web 2.0" lash or backlash, the pervasive influence of this little bookmark aggregator can't be denied. 
<p>
The site offers a myriad ways of accessing its database, from HTML and RSS feeds, to JSON data, to browser integration of various types. Let's take a look at the public API, which offers flexible and easy access to del.icio.us. 
</i>
</blockquote>
<p>
In <a href="http://www.hotwired.com/webmonkey/06/07/index2a_page2.html?tw=programming">his example</a>, he creates a script that, given the contents of an email message, filters out the URL, breaks it into its parts and sends it off to the del.icio.us API to be bookmarked under his account.]]></description>
      <pubDate>Fri, 15 Feb 2008 13:04:10 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Naberezny's Blog: __get() - an alternative to __autoload()]]></title>
      <guid>http://www.phpdeveloper.org/news/4627</guid>
      <link>http://www.phpdeveloper.org/news/4627</link>
      <description><![CDATA[<i>Mike Naberezny</i> has <a href="http://www.mikenaberezny.com/archives/38">posted this new item</a> on his blog today with a look at why __get() is a perfectly good alternative to __autoload() in a class structure.
<p>
<quote>
<i>
<a href="http://www.php.net/__autoload">__autoload()</a> is a magic function introduced in PHP 5 that provides a mechanism for on-demand loading of classes. After its inclusion in PHP, many argued that using such a feature is too magical or not a good design practice. Putting the religious debates over the appropriateness of __autoload() aside, its implementation does have one significant drawback: it is a function declared in the global scope. Once a function is declared, it cannot be redeclared. This means __autoload() can't be used effectively in shared libraries, since any other code could have already declared it.
<p>
Similar lazy-load functionality can be achieved on the class level by using <a href="http://www.php.net/manual/en/language.oop5.overloading.php">__get()</a>.
</i>
</quote>
<p>
He <a href="http://www.mikenaberezny.com/archives/38">gives a short code example</a> where the __get() call mimics the functionality of __autoload(), but the resulting object created is public, not global...]]></description>
      <pubDate>Wed, 09 Jan 2008 06:47:54 -0600</pubDate>
    </item>
  </channel>
</rss>
