<?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>Sat, 25 May 2013 06:07:59 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: Understanding HTTP Digest Access Authentication]]></title>
      <guid>http://www.phpdeveloper.org/news/19614</guid>
      <link>http://www.phpdeveloper.org/news/19614</link>
      <description><![CDATA[<p>
On PHPMaster.com they've posted a new tutorial by <i>Sean Hudgston</i> that helps you <a href="http://phpmaster.com/understanding-http-digest-access-authentication/">understand HTTP digest authentication</a>, a simple way to authenticate a user or script against your application.
</p>
<blockquote>
Digest Access Authentication is one method that a client and server can use to exchange credentials over HTTP. This method uses a combination of the password and other bits of information to create an MD5 hash which is then sent to the server to authenticate. Sending a hash avoids the problems with sending a password in clear text, a shortfall of Basic Access Authentication.
</blockquote>
<p>
He starts out by looking at the "basic authentication" mechanism that's built into most web servers and points out that it has a major flaw - sending the username/password in (pretty much) plain text. Digest, on the other hand, uses a MD5 hash created from a few pieces of information including username, realm and request method. The result is sent as a header back to the server that can then be parsed by PHP. He also talks about improving on the basic version of the digest method using the qop, nc, and cnonce optional parameters.
</p>
Link: http://phpmaster.com/understanding-http-digest-access-authentication]]></description>
      <pubDate>Tue, 21 May 2013 12:09:02 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[MaltBlue.com: Use RouteMatch in Zend Framework 2 For Easy Routing]]></title>
      <guid>http://www.phpdeveloper.org/news/19536</guid>
      <link>http://www.phpdeveloper.org/news/19536</link>
      <description><![CDATA[<p>
In the latest to his site <i>Matthew Setter</i> takes a look at <a href="http://www.maltblue.com/tutorial/use-zend-framework-2-routematch-for-dynamic-routing">easy routing with RouteMatch</a> in Zend Framework 2 applications. The <a href="http://framework.zend.com/apidoc/2.0/classes/Zend.Mvc.Router.Http.RouteMatch.html">RouteMatch</a> component gives you better control over your routing and lets you define "match paths" for URL to Controller mappings.
</p>
<blockquote>
Today using Zend Framework 2 RouteMatch, Router and Request objects, I show you an easy way to dynamically update the current route. It's almost painlessly simple. [...] Well, like most things in web application development, what starts out simply in the beginner often grows more complex over time. So too is my once simple route.
</blockquote>
<p>
His "simple" route started getting a bit out of control when he added in some pagination to the page (and query for the path match). He wanted to figure out how to re-render data with the same filters but show the next page of data. He shows how to use the RouteMatch component to achieve just this. He creates a custom module with a "listViewToolbar" helper that lets you read the router, request and handle the parameters sent via the URL. The "invoke" method is called to render the toolbar in the page, complete with the new settings.
</p>
Link: http://www.maltblue.com/tutorial/use-zend-framework-2-routematch-for-dynamic-routing]]></description>
      <pubDate>Thu, 02 May 2013 11:14:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: HTTP: The Protocol Every Web Developer Must Know - Part 2]]></title>
      <guid>http://www.phpdeveloper.org/news/19521</guid>
      <link>http://www.phpdeveloper.org/news/19521</link>
      <description><![CDATA[<p>
NetTus.com has followed up their <a href="http://phpdeveloper.org/news/19433">previous article</a> covering some of the basics of the HTTP protocol with <a href="http://net.tutsplus.com/tutorials/tools-and-tips/http-the-protocol-every-web-developer-must-know-part-2">this new post</a>, part 2 of the series. They suggest that HTTP, the messaging format of the web, is the one protocol that every web developer should know.
</p>
<blockquote>
In my <a href="http://net.tutsplus.com/tutorials/tools-and-tips/http-the-protocol-every-web-developer-must-know-part-1/">previous article</a>, we covered some of HTTP's basics, such as the URL scheme, status codes and request/response headers. With that as our foundation, we will look at the finer aspects of HTTP, like connection handling, authentication and HTTP caching. These topics are fairly extensive, but we'll cover the most important bits.
</blockquote>
<p>
In this article, they talk about things like the HTTPS secure version of HTTP, server-side connection handling, identification/authorization and working with caching and cache control headers.
</p>
Link: http://net.tutsplus.com/tutorials/tools-and-tips/http-the-protocol-every-web-developer-must-know-part-2]]></description>
      <pubDate>Mon, 29 Apr 2013 15:07:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: HTTP: The Protocol Every Web Developer Must Know - Part 1]]></title>
      <guid>http://www.phpdeveloper.org/news/19433</guid>
      <link>http://www.phpdeveloper.org/news/19433</link>
      <description><![CDATA[<p>
On NetTuts.com there's a new tutorial about what they think is the one thing every web developer should understand - <a href="http://net.tutsplus.com/tutorials/tools-and-tips/http-the-protocol-every-web-developer-must-know-part-1/">the HTTP protocol</a> and how its used in web-based communications.
</p>
<blockquote>
HTTP stands for Hypertext Transfer Protocol. It's a stateless, application-layer protocol for communicating between distributed systems, and is the foundation of the modern web. As a web developer, we all must have a strong understanding of this protocol. Let's review this powerful protocol through the lens of a web developer. We'll tackle the topic in two parts. In this first entry, we'll cover the basics and outline the various request and response headers. 
</blockquote>
<p>
They cover some of the basics of the protocol first including its statelessness, the concept of URLs and the HTTP "verbs" (like GET, POST and DELETE). They also briefly cover the HTTP response codes (ex. 200, 304) and the flow of the request and response to and from the web server. They also look at some of the basic HTTP headers and the actual low-level text formats of the requests/responses.
</p>
<p>
There's a section at the end of the post that links you to a few tools that you can use to view the HTTP messaging happening in your requests, some of which you might already have. They also briefly cover the use of HTTP in a few libraries - ExpressJS, Ruby on Rails and jQuery's Ajax handling.
</p>
Link: http://net.tutsplus.com/tutorials/tools-and-tips/http-the-protocol-every-web-developer-must-know-part-1/]]></description>
      <pubDate>Tue, 09 Apr 2013 10:56:28 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Jones: Using PHP 5.5's New "Opcache" Opcode Cache]]></title>
      <guid>http://www.phpdeveloper.org/news/19324</guid>
      <link>http://www.phpdeveloper.org/news/19324</link>
      <description><![CDATA[<p>
<i>Chris Jones</i> has a new post to his Oracle blog today talking about the <a href="https://blogs.oracle.com/opal/entry/using_php_5_5_s">new "opcode" opcode caching</a> that's going to be built into future PHP versions This is the implementation of the Zend Optimizer+ opcode caching in a native language interface. The latest <a href="http://snaps.php.net/">PHP 5.5 snapshots</a> have it included.
</p>
<blockquote>
The new "opcache" can be seen as substitute for the venerable <a href="http://pecl.php.net/package/APC">APC cache</a>, the maintenance of which had become an issue. Note: although opcache is now readily available, there is currently nothing preventing you from using any available (working!) opcode cache in PHP 5.5.
</blockquote>
<p>
He gives you a quick guide to getting this new opcode caching enabled and compiled into a shiny new download of the PHP 5.5.x branch. You'll need a special command line flag on the compile and to update your php.ini to load the needed shares module. You can also use it if you're on PHP 5.2 or higher either by <a href="https://github.com/zend-dev/ZendOptimizerPlus">compiling this source</a> or <a href="http://pecl.php.net/package/ZendOptimizerPlus">using this PECL extension</a>.
</p>]]></description>
      <pubDate>Mon, 18 Mar 2013 09:42:55 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[System Architect: Integrate PHP application with Solr search engine]]></title>
      <guid>http://www.phpdeveloper.org/news/19303</guid>
      <link>http://www.phpdeveloper.org/news/19303</link>
      <description><![CDATA[<p>
On the "System Architect" site there's a recent post showing you how to <a href="http://systemsarchitect.net/integrate-php-application-with-solr-search-engine/">integrate PHP and Solr</a>, the searching tool from the Apache project.
</p>
<blockquote>
So why do you need a search engine, is database not enough? If you create a small website it might not matter. With medium or big size applications it's often wiser to go for a search engine. Saying that, even a small websites can benefit from Solr if you desire a high level of relevance in search results.
</blockquote>
<p>
Their example involves an ecommerce website and a search for a term (iPhones) and how difficult it could be to match against the possible multiple variations on the models. Solr makes this kind of searching easier. He shows you how to get a Solr instance all set up and configured as well as the PHP PECL extension from <a href="https://github.com/lukaszkujawa/php-pecl-solr.git">here</a>. A sample PHP script is also included showing connecting to Solr, inserting a new document and searching for a simple query of "hello". 
</p>]]></description>
      <pubDate>Tue, 12 Mar 2013 12:01:43 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Web & PHP Magazine: Issue #12 - Don't Get in a PECL]]></title>
      <guid>http://www.phpdeveloper.org/news/19290</guid>
      <link>http://www.phpdeveloper.org/news/19290</link>
      <description><![CDATA[<p>
The latest issue of the Web and PHP Magazine has been published - <a href="http://webandphp.com/issue-12">issue #12</a>, "Don't get in a PECL". This latest issue includes articles like:
</p>
<ul>
<li>"The Power of PECL" by <i>Simon Holywell</i>
<li>"Be 'ready' if you want to be done!" by <i>Steffan Surdek</i>
<li>"All Data is Relational" by <i>Cory Isaacson</i>
<lI>"Fixing PHP Production Problems with APM" by <i>Dan Delany</i> and <i>Chris Kelly</i>
<li>"Trust" by <i>Sebastian Bergmann</i>
</ul>
<p>
You can download your copy for free from <a href="http://webandphp.com/issue-12">their site</a> and catch up on back issues.
</p>]]></description>
      <pubDate>Fri, 08 Mar 2013 10:23:36 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell: Installing XHGui]]></title>
      <guid>http://www.phpdeveloper.org/news/19286</guid>
      <link>http://www.phpdeveloper.org/news/19286</link>
      <description><![CDATA[<p>
<i>Lorna Mitchell</i> has a new post today showing you how to <a href="http://www.lornajane.net/posts/2013/installing-xhgui">install XHGui</a> to help with profiling your application for performance and processing issues.
</p>
<blockquote>
If you're not familiar with XHGui it's a fabulously easy and friendly way to profile your application; to understand which method calls in a page take the time and how many times they are made, so you can improve the performance of your application. All these instructions are for my 32-bit Ubuntu 12.10 system, hopefully they will work for you or you'll be able to adapt them as appropriate.
</blockquote>
<p>
She lists the dependencies you'll need to have installed before you can get XHGui working correctly including a MongoDB instance and the <a href="http://pecl.php.net/package/xhprof">PECL xhprof</a> extension. With those all set to go, you can go grab the latest XHGui <a href="https://github.com/preinheimer/xhgui">from github</a> and drop it into place. 
</p>]]></description>
      <pubDate>Thu, 07 Mar 2013 12:15:01 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Lukas Smith: On predictable PHP release cycles]]></title>
      <guid>http://www.phpdeveloper.org/news/19256</guid>
      <link>http://www.phpdeveloper.org/news/19256</link>
      <description><![CDATA[<p>
<i>Lukas Smith</i> has a new post today about what he sees as an important part of PHP (or really most open source projects) - a <a href="http://pooteeweet.org/blog/0/2194#m2194">predictable release cycle</a>. It centers around the recent proposal to introduce the <a href="https://wiki.php.net/rfc/optimizerplus">Zend Optimizer+</a> into the core and how it seems to be causing a delay with 5.5 (maybe up to 2 months).
</p>
<blockquote>
What troubles me though is that its being proposed very late in the game for PHP 5.5, therefore causing a likely delay of 5.5 of at least about 2 months in the best case scenario if it were included. The other option of including it in 5.6 does not seem to be as popular at this point. This saddens me quite a bit since I believe that <a href="https://wiki.php.net/rfc/releaseprocess">predictable release cycles</a> would carry several advantages
</blockquote>
<p>
He points out some things that come along with having predicability around the software releases like developers knowing when/if their changes will make it into the next release. It also makes it easier for end users to plan their releases of their own software, knowing when they'll be getting a feature. In this particular case, though, he doesn't quite understand the delay as the Zend Optimizer+ isn't a change to core, it's an addition:
</p>
<blockquote>
What is even stranger for this case is that we are just talking about an extension here. Its not a language feature, there is no engine level integration. So even if its not added to core, people can easily get Optimizer+ via PECL. So in this case we are not talking about people having to wait another 10-11 months. Don't get me wrong I think getting an opcode cache into core is awesome, but the reality is that shared host users will probably still not have access to it [...] and the rest can still get it, albeit with a bit more effort. 
</blockquote>]]></description>
      <pubDate>Fri, 01 Mar 2013 09:37:52 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell: PHP and Gearman: Unable to connect after upgrade]]></title>
      <guid>http://www.phpdeveloper.org/news/19252</guid>
      <link>http://www.phpdeveloper.org/news/19252</link>
      <description><![CDATA[<p>
<i>Lorna Mitchell</i> has shared some advice about <a href="http://www.lornajane.net/posts/2013/php-and-gearman-unable-to-connect-after-upgrade">correcting an issue with PHP and Gearman</a> after she did an upgrade via PECL.
</p>
<blockquote>
I upgraded PHP and related pecl modules on my development machine today, and ran into a problem with Gearman. Actually I ran into more than one! Firstly the challenge of getting the newest pecl version working with a gearman version. Then an error where my existing PHP application couldn't connect to gearman after upgrade.
</blockquote>
<p>
Running on Ubuntu, she found <a href="http://www.phamviet.net/2012/10/10/ubuntu-php-5-4-x-and-gearman-troubleshooting/">this tutorial</a> helpful in getting Gearman back into a working state and installed (version 1.1.1). The "unable to connect" error turned out to be a change in how the Gearman connection needed to be made - the addition of a port to the connection string made things work again. 
</p>]]></description>
      <pubDate>Thu, 28 Feb 2013 12:55:48 -0600</pubDate>
    </item>
  </channel>
</rss>
