<?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, 19 Jun 2013 11:42:44 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[MaltBlue.com: Using ZFTool for Basic Project Management]]></title>
      <guid>http://www.phpdeveloper.org/news/19726</guid>
      <link>http://www.phpdeveloper.org/news/19726</link>
      <description><![CDATA[<p>
<i>Matthew Setter</i> has <a href="http://www.maltblue.com/tutorial/zftool-for-basic-project-management">posted a new tutorial</a> about using the ZFTool functionality of Zend Framework v2 for managing your project's settings and configuration.
</p>
<blockquote>
Welcome to another tutorial. Today, I will be giving you a walk through of zftool, which provides basic tooling support in Zend Framework 2. If you're new to Zend Framework, or have been <a href="http://www.maltblue.com/articles-2/zend-framework-2-core-concepts-understanding-dependency-injection">reading the introductory series here</a>, it can come in quite handy. But unlike other frameworks, such as Yii (<a href="http://www.yiiframework.com/doc/guide/1.1/en/quickstart.first-app">through yiic</a>) and Symfony (<a href="http://symfony.com/doc/current/components/console/introduction.html">via the Command Line tool</a>), the tooling support in Zend Framework 2 is rather light on. These respective tools provide rather robust support for automatically generating models from database connections, checking logs and a host of other much required functionality.
</blockquote>
<p>
He shows you how to do a few things with the ZFTool - create a new project, make some modules inside it, build an autoloader classmap and check the installation with some basic diagnostics. Command examples and configuration samples are included in the post to help you along. 
</p>
Link: http://www.maltblue.com/tutorial/zftool-for-basic-project-management]]></description>
      <pubDate>Mon, 17 Jun 2013 11:18:42 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: The PHP Internals Book]]></title>
      <guid>http://www.phpdeveloper.org/news/19701</guid>
      <link>http://www.phpdeveloper.org/news/19701</link>
      <description><![CDATA[<p>
For those that are interested in how PHP works "under the covers" and maybe want to get started writing your own extensions for it, you should check out <a href="http://www.phpinternalsbook.com/">the PHP Internals Book</a>. It's a collaborative effort between <i>Julien Pauli</i>, <i>Anthony Ferrara</i> and <i>Nikita Popov</i>.
</p>
<blockquote>
There are three primary goals of this book: Document and describe how PHP internals work, how to extend the language with extensions, how you can interact with the community to develop PHP itself. This book is primarily targeted at developers who have experience in the C programming language. However, where-ever possible we will attempt to distill the information and summarize it so that developers who don't know C will still be able to understand the content.
</blockquote>
<p>
<a href="http://www.phpinternalsbook.com/">The book</a> is a work in progress, but they're off to a good start. They already have sections covering some of the basics of working with classes and objects (including iterators and "magic interfaces").
</p>
Link: http://www.phpinternalsbook.com]]></description>
      <pubDate>Tue, 11 Jun 2013 10:44:33 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Whoops! PHP Errors for Cool Kids]]></title>
      <guid>http://www.phpdeveloper.org/news/19679</guid>
      <link>http://www.phpdeveloper.org/news/19679</link>
      <description><![CDATA[<p>
On NetTuts.com there's a new post spotlighting an interesting tool you can use to help make debugging an easier (and prettier) experience in PHP, the <a href="http://net.tutsplus.com/tutorials/php/whoops-php-errors-for-cool-kids">Whoops</a> library.
</p>
<blockquote>
<a href="http://filp.github.io/whoops/">Whoops</a> is a small library, available as a <a href="https://packagist.org/packages/filp/whoops">Composer package</a>, that helps you handle errors and exceptions across your PHP projects. Out of the box, you get a sleek, intuitive and informative error page each time something goes pants-up in your application.
</blockquote>
<p>
It provides you with detailed error messages, a "code view" of where the error was found, support for Ajax/JSON requests and providers for several popular frameworks. The system is made up of a set of handlers that execute in order to provide the resulting page of output. He goes through how to install the tool (via Composer) and what you'll need to know to put it to use. He shows how to change up some of the configuration options and add in some extra info to the output. There's also a section specifically about integrating it with the Laravel 4 framework. 
</p>
Link: http://net.tutsplus.com/tutorials/php/whoops-php-errors-for-cool-kids]]></description>
      <pubDate>Thu, 06 Jun 2013 10:46:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Understanding Recursion]]></title>
      <guid>http://www.phpdeveloper.org/news/19678</guid>
      <link>http://www.phpdeveloper.org/news/19678</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new tutorial posted that talks about something that can be a more difficult concept for budding developers to grasp - <a href="http://phpmaster.com/understanding-recursion/">recursion</a>.
</p>
<blockquote>
In one of my previous articles <a href="http://phpmaster.com/using-spl-iterators-1/">I wrote about iterators</a> and how you can use them. Today I'd like to look at the fraternal twin of iteration: recursion. A recursive function is one that calls itself, either directly or in a cycle of function calls. Recursion can also refer to a method of problem solving that first solves a smaller version of the problem and then uses that result plus some other computation to formulate an answer to the original problem. 
</blockquote>
<p>
He starts with an example - one function showing how to calculate a factorial using just looping and the other by having the function call itself. He talks some about the different types of recursion (direct/indirect) and gives a more practical example, a "find in array" function for one with nested subarrays. He also briefly mentions "head" and "tail" recursion, the difference being if it waits for a return value or not. He also offers some general advice when it comes to using recursion and how you have to watch for optimization issues. 
</p>
Link: http://phpmaster.com/understanding-recursion]]></description>
      <pubDate>Thu, 06 Jun 2013 09:32:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Aura.Web: Aura's Page Controller for MVC]]></title>
      <guid>http://www.phpdeveloper.org/news/19673</guid>
      <link>http://www.phpdeveloper.org/news/19673</link>
      <description><![CDATA[<p>
On PHPMaster.com today <i>Hari K T</i> has <a href="http://phpmaster.com/aura-web-auras-page-controller-for-mvc/">spotlighted one of the components</a> from the Aura framework, the <a href="http://auraphp.com/Aura.Web/">Aura.Web</a> component.
</p>
<blockquote>
MVC is an acronym that means Model-View-Controller. In this tutorial I would like to introduce you to Aura.Web, the controller component of the Aura Library. Here I'll show you how to use it to build your own controller, and also how to use a response transfer object to issue HTTP response headers, and integrate a templating engine like Mustache for rendering views.
</blockquote>
<p>
He starts off with an overview of how the component is architected and how it is used to create controllers and what dependencies it needs injected. He talks about some of the objects and the methods they provide and includes some sample code for a basic "Index" controller. He shows how to integrate the Mustache templating engine for output and how to work directly with HTTP responses.
</p>
Link: http://phpmaster.com/aura-web-auras-page-controller-for-mvc]]></description>
      <pubDate>Wed, 05 Jun 2013 09:58:42 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[MaltBlue.com: Zend Framework 2 - The New HTML5 Form Fields]]></title>
      <guid>http://www.phpdeveloper.org/news/19643</guid>
      <link>http://www.phpdeveloper.org/news/19643</link>
      <description><![CDATA[<p>
<i>Matthew Setter</i> has posted another in his series looking at the Zend Framework v2 and some of its features. In <a href="http://www.maltblue.com/tutorial/zf2-html5-form-field-introduction">this new post</a> he focuses on the HTML5 form field support that comes bundled with recent versions.
</p>
<blockquote>
In this tutorial, I'll be taking you through a few of the new HTML5-specific form elements available in the new Zend Framework 2. We'll see: how they work, how to use them, so you can also see what they're like. This will be coupled with a good set of screenshots - so you know what they look like. By the end of this tutorial, you should be well on your way to being able to have fully HTML5 interfaces in your applications.
</blockquote>
<p>
He starts off by talking about HTML5 elements in general, pointing out a few reasons why to use them, complete with statistics to back them up (of mobile usage where HTML5 can be handy). He focuses specifically on four different elements - the telephone input field, email field, URL field and the date/time selector. He gives examples of each and screenshots of what they look like on a mobile device (iPhone in this case). Complete code is included to create the elements as well.
</p>
Link: http://www.maltblue.com/tutorial/zf2-html5-form-field-introduction]]></description>
      <pubDate>Wed, 29 May 2013 09:33:59 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Michelangelo van Dam: UA Testing with Selenium and PHPUnit]]></title>
      <guid>http://www.phpdeveloper.org/news/19629</guid>
      <link>http://www.phpdeveloper.org/news/19629</link>
      <description><![CDATA[<p>
In <a href="http://www.dragonbe.com/2013/05/ua-testing-with-selenium-and-phpunit.html">this new post</a> to his site <i>Michaelangelo van Dam</i> looks at user acceptance testing with <a href="http://phpunit.de">PHPUnit</a> and <a href="http://docs.seleniumhq.org/">Selenium</a>.
</p>
<blockquote>
Last week I spoke at <a href="http://tek.phparch.com/">php[tek] 2013</a> where I explained to people how to get started with <a href="http://www.seleniumhq.org/">Selenium IDE</a> to record user interaction with the web interface, convert them to PHPUnit testcases and automatically execute them on multiple browsers on multiple platforms. The <a href="https://joind.in/8157>feedback</a> I got was awesome, you're all a great crowd! But on <a href="https://twitter.com/dragonbe>twitter</a> I also received a bunch of questions regarding how to set up multiple platforms and why I used Windows in my presentation to deploy to. So today I deceided it was time to write a full article on this subject.
</blockquote>
<p>
He introduces Selenium and what kinds of things it can be used to test. He also defines "user acceptance testing" and talks about why they're an important part of the testing ecosystem. He then walks you through the process of getting the testing environment set up, creating a few tests and how to convert them over to PHPUnit tests (using a built-in tool). Screencasts show you each step of the way. He includes a little tweaking you'll need to do to to the test code to get it working with your own Selenium server 
</p>
Link: http://www.dragonbe.com/2013/05/ua-testing-with-selenium-and-phpunit.html]]></description>
      <pubDate>Fri, 24 May 2013 10:18:40 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell: Simplest PHP Generator Example]]></title>
      <guid>http://www.phpdeveloper.org/news/19623</guid>
      <link>http://www.phpdeveloper.org/news/19623</link>
      <description><![CDATA[<p>
On her blog <i>Lorna Mitchell</i> has posted an example of a <a href="http://www.lornajane.net/posts/2013/simplest-php-generator-example">basic generator</a> written in PHP, a feature of the upcoming PHP version 5.5</a>.
</p>
<blockquote>
I really like the generators feature that's arriving in PHP 5.5, and since we're now into release candidate releases, it's actually not that far away. I've been speaking on this topic and I thought I'd share my trivially simple code example from my slides.
</blockquote>
<p>
She includes an example of a very basic generator using the new "yield" keyword and how to implement it in a simple foreach loop. There's also a little talk about when is a good time to use generators in your applications (two examples: complex number calculation and working with large data sets a chunk at a time). For more information on how these generators will work, check out <a href="http://php.net/manual/en/language.generators.overview.php">this page</a> in the PHP manual.
</p>
Link: http://www.lornajane.net/posts/2013/simplest-php-generator-example]]></description>
      <pubDate>Thu, 23 May 2013 10:31:02 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: How to Create a PyroCMS Theme]]></title>
      <guid>http://www.phpdeveloper.org/news/19613</guid>
      <link>http://www.phpdeveloper.org/news/19613</link>
      <description><![CDATA[<p>
On NetTuts.com today there's a new tutorial posted showing you how to <a href="http://net.tutsplus.com/tutorials/php/how-to-create-a-pyrocms-theme/">create a theme for PyroCMS</a>, an open source, PHP-based <a href="https://www.pyrocms.com/">content management system</a> with a large user base and community.
</p>
<blockquote>
Like most content management systems, <a href="https://www.pyrocms.com/">PyroCMS</a> uses front-end themes. Though PyroCMS themes are built a bit differently than what you might be used to from other systems, they're still quite easy to create. They're so easy, in fact, that very little PHP experience is required to assemble them!
</blockquote>
<p>
He walks through things like the folder structure of the templates directory and how to get started on a custom "Foo" theme of your own. He covers how to lay out the HTML markup for the theme and how you can use partials for the sections of the site. He briefly touches on using multiple layout files and how to use different layouts shown only to mobile devices.
</p>
Link: http://net.tutsplus.com/tutorials/php/how-to-create-a-pyrocms-theme]]></description>
      <pubDate>Tue, 21 May 2013 11:19:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Cloning in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19600</guid>
      <link>http://www.phpdeveloper.org/news/19600</link>
      <description><![CDATA[<p>
In <a href="http://css.dzone.com/articles/cloning-php">this recent post</a> over on DZone.com <i>Giorgio Sironi</i> takes a look at the "clone" feature of PHP - what it is, how it can be used and things to watch out for in its use.
</p>
<blockquote>
Cloning is an operation consisting in the duplication of a data structure, usually to avoid the <a href="http://en.wikipedia.org/wiki/Action_at_a_distance_%28computer_programming%29">aliasing problem</a> of having different code modify the same instance in inconsistent ways. In PHP, cloning can be accomplished in multiple ways - and in some cases it can be avoided altogether.
</blockquote>
<p>
He talks some about how objects are passed around internally during the PHP execution and how you can tell if a function works with data by reference (from the manual). He then looks at the "clone" keyword and what kinds of things are duplicated from an object when it is used. He briefly touches on the "__clone" magic method for solving the "shallow clone" problem and how, possibly, serializing the object might be a better alternative for reproducing the entire object.
</p>
Link: http://css.dzone.com/articles/cloning-php]]></description>
      <pubDate>Fri, 17 May 2013 11:09:42 -0500</pubDate>
    </item>
  </channel>
</rss>
