<?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>Wed, 22 May 2013 04:52:18 -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[PHP Podcast: Episode #2 - Adam Culp]]></title>
      <guid>http://www.phpdeveloper.org/news/19496</guid>
      <link>http://www.phpdeveloper.org/news/19496</link>
      <description><![CDATA[<p>
The PHP Podcast (from <a href="http://zend.com">Zend</a>) has posted its second episode - <a href="http://phppodcast.com/episode-2-adam-culp/">Episode #2</a>, an interview with <i>Adam Culp</i> who recently joined the team at Zend and is a organizer for the South Florida PHP User Group.
</p>
<blockquote>
In this episode we talk to Adam Culp on his very first day as a Zend employee. We talk about PHP community and Adam's decision to move from the realm of independent consultant to Zender! Adam is the organizer of <a href="http://sunshinephp.com/">SunshinePHP</a>, PHP Guru and joining the Zend Professional Services Team.
</blockquote>
<p>
You can listen to this latest episode either through the <a href="http://phppodcast.com/episode-2-adam-culp/">in-page player</a> or by <a href="http://phppodcast.com/wp-content/uploads/2013/04/TPHPP_002_Adam_Culp_April2013.mp3">downloading the mp3</a> directly. You can also <a href="http://phppodcast.com/feed/">subscribe to their feed</a> of you want this and future episodes pulled automatically.
</p>
Link: http://phppodcast.com/episode-2-adam-culp/]]></description>
      <pubDate>Tue, 23 Apr 2013 10:47:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[7PHP.com: Zend Certifications Tips & Tricks - Hear It From Zend Certified Engineer Eric Hogue]]></title>
      <guid>http://www.phpdeveloper.org/news/19492</guid>
      <link>http://www.phpdeveloper.org/news/19492</link>
      <description><![CDATA[<p>
On 7PHP.com there's a new post that interviews a PHP community member, <i>Eric Hogue</i>, about <a href="http://7php.com/zend-certification-advice-eric-hogue/">his experience with the Zend Certified Engineer exam</a>.
</p>
<blockquote>
This is the 3rd set of <a href="http://7php.com/category/zend-certification-tips/">Zend Certification Tips and Advice</a> to help anyone taking either of the two Zend Exams powered by <a href="http://en.wikipedia.org/wiki/Zend_Technologies">Zend Technologies</a>: the Zend PHP Certification Exam and/or the Zend Framework Certification Exam. The aim being to help people who want to sit for those exams and inform them what it is all about & what to expect by <a href="http://7php.com/category/expert-php-advice/">hearing it from (pro) PHP Guys</a> who have already been through it, that is => Hear It From Zend Certified Engineers!
</blockquote>
<p>
He starts off with some general questions to <i>Eric</i> about the exam and its structure and how he prepared himself for it. He mentions some of the resources he used to study and what kind of topics to pay attention to. There's also a few quotes included at the end giving <a href="http://penguindreams.org/blog/disappointe-with-zends-php5-certification">another perspective</a> on the exam (specifically, some frustrations).
</p>
Link: http://7php.com/zend-certification-advice-eric-hogue]]></description>
      <pubDate>Mon, 22 Apr 2013 12:16:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Gonzalo Ayuso: Enqueue Symfony's process components with PHP and ZeroMQ]]></title>
      <guid>http://www.phpdeveloper.org/news/19434</guid>
      <link>http://www.phpdeveloper.org/news/19434</link>
      <description><![CDATA[<p>
<i>Gonzalo Ayuso</i> has a new post today showing how he set up <a href="http://gonzalo123.com/2013/04/08/building-a-zeromq-enqueue-with-php/">queuing with ZeroMQ and Symfony components</a> and <a href="http://reactphp.org/">React</a>.
</p>
<blockquote>
Today I'd like to play with <a href="http://www.zeromq.org/">ZeroMQ</a>. ZeroMQ is a great tool to work with sockets. I will show you the problem that I want to solve: One web application needs to execute background processes but I need to execute those processes in order. Two users cannot execute one process at the same time. OK, if we face to this problem we can use Gearman. I've written various posts about Gearman (<a href="http://gonzalo123.com/2011/03/07/watermarks-in-our-images-with-php-and-gearman/">here</a> and <a href="http://gonzalo123.com/2010/11/01/database-connection-pooling-with-php-and-gearman/">here</a> for example). But today I want to play with ZeroMQ.
</blockquote>
<p>
He uses React and some ZeroMQ bindings and Symfony's <a href="https://github.com/symfony/Process">Process</a> component to make a simple client and server for working with the queue and processes. A screencast is included in the post showing them making the connection and adding the new process. The full code can be found <a href="https://github.com/gonzalo123/zmqlifo">on github</a> (or installable <a href="https://packagist.org/packages/gonzalo123/zmqlifo">via Composer</a>)
</p>
Link: http://gonzalo123.com/2013/04/08/building-a-zeromq-enqueue-with-php]]></description>
      <pubDate>Tue, 09 Apr 2013 11:11:59 -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[PHP Podcast: Episode #1 - Cal Evans]]></title>
      <guid>http://www.phpdeveloper.org/news/19385</guid>
      <link>http://www.phpdeveloper.org/news/19385</link>
      <description><![CDATA[<p>
The <a href="http://phppodcast.com/episode-1-cal-evans/">first episode</a> of a new PHP-related podcast, the "PHP Podcast" produced by <a href="http://zend.com">Zend</a>, has been released. This first episode, hosted by <i>Joe Stagner</i> features a well-known PHPer, <i>Cal Evans</i>.
</p>
<blockquote>
Cal Evans has been referred to as "The Ubiquitous Face of the PHP Community". That's made Cal an obvious choice for the first guest on the PHPPodcast. In this episode we chat about the evolving face of the PHP community.
</blockquote>
<p>
You can listen to this latest episode either through the <a href="http://phppodcast.com/episode-1-cal-evans/">in-page player</a>, by <a href="http://phppodcast.com/wp-content/uploads/2013/03/TPHPP_001_Cal_Evans.mp3">downloading the mp3</a> or by <a href="http://phppodcast.com/feed/">subscribing to their feed</a>.
</p>]]></description>
      <pubDate>Fri, 29 Mar 2013 12:38:30 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jason Fox: Use the Accept Header to Set Your Return Data With Zend Framework 2]]></title>
      <guid>http://www.phpdeveloper.org/news/19222</guid>
      <link>http://www.phpdeveloper.org/news/19222</link>
      <description><![CDATA[<p>
<i>Jason Fox</i> has a recent post to his site about using <a href="http://neverstopbuilding.net/use-the-accept-header-to-set-your-return-data-with-zend-framework-2/?utm_source=reddit">"Accept" headers in Zend Framework 2 apps</a> to set the format of the return data from a request.
</p>
<blockquote>
In this article I detail the process by which you can set up your controller actions in Zend Framework 2 to return either the default HTML, or JSON data depending on the "Accept Header" in the request. It incorporates changes related to a security update added since this <a href="http://akrabat.com/zend-framework-2/returning-json-using-the-accept-header-in-zf2/">very helpful article</a> was written, and expands on some of the intricacies of making your web layer objects better "json providers."
</blockquote>
<p>
His example uses a "ViewJsonStrategy" and the criteria to look for to determine which version to respond with (HTML or JSON) - the Accept header. It uses the JSON encoder/decoder instead of the built-in PHP one to he could use the included "toJson" method to customize the output of the JSON instead of just returning everything.
</p>]]></description>
      <pubDate>Fri, 22 Feb 2013 11:42:35 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Hari KT: Aura.Http : Request and Response]]></title>
      <guid>http://www.phpdeveloper.org/news/19194</guid>
      <link>http://www.phpdeveloper.org/news/19194</link>
      <description><![CDATA[<p>
On his blog today <i>Hari KT</i> has an <a href="http://auraphp.github.com/">Aura Framework</a>-related post about one of its components, <a href="http://harikt.com/blog/2013/02/16/aura-dot-http-request-and-response/">the Aura.Http component</a>, and its handling of HTTP requests and responses.
</p>
<blockquote>
The Aura.Http package provide you the tool to build and send request and response. [...] Probably you may not have bothered too much on building the http response either the framework does it for you, or until you need to send the correct response.
</blockquote>
<p>
The post shows you how to use the component to send and receive HTTP requests. Code is included showing how to make Response objects and set headers, content, cookies and HTTP response code. He also shows how to output the response and a more complete example of the entire flow. The post finishes up with an example of using Aura.Http to make a request to another site - in this case back to GitHub to get the users on a repository.
</p>]]></description>
      <pubDate>Mon, 18 Feb 2013 11:49:58 -0600</pubDate>
    </item>
  </channel>
</rss>
