<?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, 24 May 2012 16:13:53 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Paul Reinheimer's Blog: Sending Mail]]></title>
      <guid>http://www.phpdeveloper.org/news/17997</guid>
      <link>http://www.phpdeveloper.org/news/17997</link>
      <description><![CDATA[<p>
<i>Paul Reinheimer</i> has <a href="http://blog.preinheimer.com/index.php?/archives/383-Sending-Mail.html">posted about his experiences with sending mail</a>, specifically as it relates to using the <a href="http://framework.zend.com/manual/en/zend.mail.html">Zend_Mail</a> component from the Zend Framework to handle the details.
</p>
<blockquote>
Like every product, Natural Load Testing needs to send some mail, having written and re-written a bunch of different blocks of mail code over the years, I wanted to come up with something that would work now, and continue to serve us well into the future.
</blockquote>
<p>
He chose Zend_Mail to fulfill some of his requirements (multipart emails, sending custom emails, templates for automatic emails) and includes some sample code showing it at work. The result is an object that can be created and, by calling a "basic" method, can send an email based on an HTML template (using the <a href="http://htmlemailboilerplate.com/">HTML Email Boilerplate</a> for the base styling).
</p>]]></description>
      <pubDate>Wed, 23 May 2012 12:58:29 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Project: Gitlist - A Git Repository Viewer (based on Silex & Twig)]]></title>
      <guid>http://www.phpdeveloper.org/news/17977</guid>
      <link>http://www.phpdeveloper.org/news/17977</link>
      <description><![CDATA[<p>
<i>Klaus Silveira</i> has submitted a project he's been working on to make browsing through git repositories a bit simpler with a local tool - <a href="https://github.com/klaussilveira/gitlist">gitlist</a>.
</p>
<blockquote>
GitList is an elegant and modern web interface for interacting with multiple git repositories. It allows you to browse repositories using your favorite browser, viewing files under different revisions, commit history, diffs. It also generates RSS feeds for each repository, allowing you to stay up-to-date with the latest changes anytime, anywhere. GitList was written in PHP, on top of the <a href="http://silex.sensiolabs.org/">Silex</a> microframework and powered by the Twig template engine. This means that GitList is easy to install and easy to customize. Also, the GitList gorgeous interface was made possible due to <a href="http://twitter.github.com/bootstrap/">Bootstrap</a>.
</blockquote>
<p>
Since it's just a PHP-based application, installing it is as easy as cloning the source to a web-accessible directory and setting up a "config.ini" file with your settings. You can find out more about this project based on the popular Silex microframework <a href="https://github.com/klaussilveira/gitlist">on its GitHub page</a>.
</p>]]></description>
      <pubDate>Fri, 18 May 2012 09:45:46 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Using Closures as View Helpers]]></title>
      <guid>http://www.phpdeveloper.org/news/17446</guid>
      <link>http://www.phpdeveloper.org/news/17446</link>
      <description><![CDATA[<p>
New on DevShed today there's a tutorial looking at using one of the newer features of PHP, closures, <a href="http://www.devshed.com/c/a/PHP/Using-PHP-Closures-as-View-Helpers/">as view helpers</a> in a basic templating system.
</p>
<blockquote>
In this two-part tutorial I'll be showing you, in a step-by-step fashion, how to use the goodies offered by closures in the implementation of an object-based, easily extendable template system. This system will allow you to embed anonymous functions easily into template files, and call them as typical view helpers, too.
</blockquote>
<p>
He starts the process of creating the templating system by defining two interfaces, the View and DataHandler. Using these as a base, he creates an instance of the ViewInterface (a "View" class) that can set the template file to use, set values to be displayed and render the formatted output. Included is a basic template and how to use the View class to set values into it. The "render" method is called on the view and the HTML markup is produced. The closure comes in when they try to call a value "clientIp" that needs to do something more complicated than just having a string assigned to it.
</p>]]></description>
      <pubDate>Wed, 25 Jan 2012 09:50:38 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Derick Rethans' Blog: Twig extension]]></title>
      <guid>http://www.phpdeveloper.org/news/17151</guid>
      <link>http://www.phpdeveloper.org/news/17151</link>
      <description><![CDATA[<p>
In a new post from <i>Derick Rethans</i> he talks about <a href="http://derickrethans.nl/twig-extension.html">an extension version</a> of Twig, the popular <a href="http://twig-project.com">templating engine</a> from the creators of the Symfony framework.
</p>
<blockquote>
A while ago, Fabien asked me to have a look at porting one of Twig's slowest methods, TwigTemplate::getAttribute(), into a PHP extension. It is a complex method that does a lot of different checks and look-ups. Fabien's benchmarks showed that this method was responsible for quite a large amount of time. On top of that, it didn't seem that it could be optimised any further as PHP code itself.
</blockquote>
<p>
He points to <a href="https://github.com/derickr/twig-ext">the twig-ext extension</a> that's a reworked version of the "getAttribute" method from the tool and the performance gain (about 15%) it gives. Compiled templates will automatically call this new method in the extension. This update has already been merged into <a href="http://github.com/fabpot/Twig">the main Twig repo</a>.
</p>]]></description>
      <pubDate>Mon, 21 Nov 2011 08:35:39 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Code Templates, AutoHotKey, and Ditto: Speeding Up Development]]></title>
      <guid>http://www.phpdeveloper.org/news/17094</guid>
      <link>http://www.phpdeveloper.org/news/17094</link>
      <description><![CDATA[<p>
On PHPMaster.com today they share a list of <a href="http://phpmaster.com/code-templates-autohotkey-and-ditto/">helpful tools and tricks</a> that you can apply not only to your PHP development, but programming in general. They highlight code templates, using hotkeys and <a href="http://ditto-cp.sourceforge.net/">Ditto</a>.
</p>
<blockquote>
There are also other helpful pieces of software such as libraries, code snippets, and third party applications. In this article I'll show you how I use a feature built into NetBeans along with two other applications to increase my productivity when programming on Windows. These tips and techniques offer a different way of thinking about things which should be helpful to any developer, regardless of his skill level.
</blockquote>
<p>
They start with a look at the Code Templates available in NetBeans (other IDEs/editors have a similar feature) to provide an easier starting place for your code, a tool called <a href="http://www.autohotkey.com/download">AutoHotKey</a> that lets you define custom hotkey shortcuts and <a href="http://ditto-cp.sourceforge.net/">Ditto</a>, a clipboard manager that lets you manage your copy/pasting better than the single-shot functionality Windows normally has.
</p>]]></description>
      <pubDate>Mon, 07 Nov 2011 11:13:20 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Closure Object Binding in PHP 5.4]]></title>
      <guid>http://www.phpdeveloper.org/news/17054</guid>
      <link>http://www.phpdeveloper.org/news/17054</link>
      <description><![CDATA[<p>
In a new post to DZone.com <i>Mitchell Pronschinske</i> looks at <a href="http://css.dzone.com/articles/closure-object-binding-php-54">closure object binding</a> in PHP 5.4 applications (yes, we know PHP 5.4 isn't released yet). He explains what this is an shows some sample use cases for you to consider in your development.
</p>
<blockquote>
For the people who read PHP's NEWS file, it's no surprise - but for all who don't here's is probably one of the biggest features of PHP 5.4: Closure Object Support is back. For me it's something I missed the most, when Closures were introduced in PHP 5.3. So I'm very happy, that's finally here (or back). I'm going to tell you about the rocky road which closure object binding support had and show you some simple use cases for it.
</blockquote>
<p>
The functionality, based on <a href="https://wiki.php.net/rfc/closures/object-extension">this RFC</a>, lets you more correctly bind closures to objects instead of having to pass the objects into the closure at create time. He includes an example from a <a href="http://silex.sensiolabs.org/">Silex</a> framework application and <a href="https://gist.github.com/1121233">an example</a> that refactors a helper method as a part of rendering a simple template.
</p>]]></description>
      <pubDate>Fri, 28 Oct 2011 08:43:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[ZendCasts.com: SLIMming Out Your Controller]]></title>
      <guid>http://www.phpdeveloper.org/news/17007</guid>
      <link>http://www.phpdeveloper.org/news/17007</link>
      <description><![CDATA[<p>
On the ZendCasts.com site today, they branch out from just talking about Zend Framework-related topics and take a look at he <a href="http://www.slimframework.com/">Slim micro-framework</a> in <a href="http://www.zendcasts.com/slimming-out-your-controller/2011/10/">this new screencast</a>.
</p>
<p>
He introduces the framework as a light-weight, easy to use tool that doesn't include "all of that extra stuff". He walks you through the creation of a (very) simple site that includes some basic templating too. At the end of the screencast he hints at the next part of the series - creating a simple JSON endpoint as a RESTful web service.
</p>
<p>
You can find out more about the Slim framework <a href="http://www.slimframework.com/">on its site</a> that includes documentation and a <a href="http://dev.slimframework.com/phpdocs/">PHPDoc generated manual</a> for every part of the code.
</p>]]></description>
      <pubDate>Tue, 18 Oct 2011 11:02:58 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Joris de Wit's Blog: Extending different layouts for Ajax requests in Twig, Symfony2]]></title>
      <guid>http://www.phpdeveloper.org/news/16784</guid>
      <link>http://www.phpdeveloper.org/news/16784</link>
      <description><![CDATA[<p>
<i>Joris de Wit</i> has a (very) <a href="http://jorisdewit.ca/2011/08/27/extending-different-layouts-for-ajax-requests-in-twig-symfony2/">quick post</a> about a handy tip he found about switching layouts easily with <a href="http://twig-project.org">Twig</a> in his Symfony2-based application - a handy ternary sort of switch that can detect when something's an Ajax request.
</p>
<blockquote>
I just learned about the 'app' global variable in twig. It's very handy for loading a special layout for ajax requests.
</blockquote>
<p>
The "app" variable allows you get get back at some of the settings of your application and check on special things like the isXMLHttpRequest in his example. For more information about Twig and how you can add it to your application, check out <a href="http://www.twig-project.org/documentation">Twig-Project.org</a>. Using it's as simple as adding a phar.
</p>]]></description>
      <pubDate>Mon, 29 Aug 2011 11:39:34 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Smarty PHP Template Engine: Building PHP Apps in a Flash]]></title>
      <guid>http://www.phpdeveloper.org/news/16700</guid>
      <link>http://www.phpdeveloper.org/news/16700</link>
      <description><![CDATA[<p>
On PHPBuilder.com today there's a new tutorial from <i>Octavia Anghel</i> <a href="http://www.phpbuilder.com/columns/smarty-template/Octavia_Anghel06072011.php3">introducing you to Smarty</a>, a PHP-based <a href="http://www.smarty.net/">templating engine</a> that can make creating the layouts and output of your site simpler and easier to reuse.
</p>
<blockquote>
Smarty is a template engine for PHP whose main goal is to facilitate a very useful way to separate the business logic from the presentation logic. This article introduces Smarty and demonstrates how to install the template, create an application from scratch and interact with a database.
</blockquote>
<p>
Installation of <a href="http://www.smarty.net/">the tool</a> is simple and using it is as easy as including the Smarty class, configuring it a bit through method calls and outputting to a template (tpl) file. A both a "Hellow World" and slightly more complex example using database results to build a table are included.
</p>]]></description>
      <pubDate>Wed, 10 Aug 2011 10:29:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Getting Started with Jenkins for PHP Developers]]></title>
      <guid>http://www.phpdeveloper.org/news/16503</guid>
      <link>http://www.phpdeveloper.org/news/16503</link>
      <description><![CDATA[<p>
On PHPBuilder.com today there's a new tutorial from <i>Jason Gilmore</i> helping you <a href="http://www.phpbuilder.com/columns/jenkins-ci/Jason_Gilmore06212011.php3">get started with Jenkins</a> for building and deploying your PHP applications. Jenkins (formerly Hudson) can make things "one click simple" for you to correctly push your applications live every time.
</p>
<blockquote>
Although a Java-based solution, an active plugin community has made it possible to use Jenkins for far more than Java-specific projects. More recently it has become much easier for Jenkins' novices to use the project in conjunction with PHP projects thanks to the work of <a href="http://sebastian-bergmann.de/">Sebastian Bergmann</a>. Known as <a href="http://jenkins-php.org/">Template for Jenkins Jobs for PHP Projects</a>, the project provides a configuration file which you'll use to enable Jenkins/PHP integration, and supports several popular familiar PHP tools such as <a href="http://www.phpbuilder.com/columns/PHP_CodeSniffer/Jason_Gilmore10212010.php3">PHP_CodeSniffer</a> and <a href="http://www.phpbuilder.com/columns/Jason_Gilmore052510.php3">PHPUnit</a>.
</blockquote>
<p>
He walks you through a brief installation of Jenkins (packages on a Debian install) and shows you how to get your git repository, the source for it to pull from) configured and ready to pull. He also includes some other screenshots showing you where to look for the build status, results from past builds and how to get the system to build documentation as a part of the build.
</p>]]></description>
      <pubDate>Wed, 22 Jun 2011 09:20:26 -0500</pubDate>
    </item>
  </channel>
</rss>

