<?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 04:02:14 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Leaseweb Labs Blog: POC: Flexible PHP Output Caching]]></title>
      <guid>http://www.phpdeveloper.org/news/17489</guid>
      <link>http://www.phpdeveloper.org/news/17489</link>
      <description><![CDATA[<p>
On the Leaseweb Labs blog there's <a href="http://www.leaseweblabs.com/2012/01/poc-flexible-php-output-caching/">a recent post</a> looking at using the <a href="http://github.com/tothimre/POC">POC framework</a> to work with flexible output caching. The tool makes it easy to create a new object and push cache content into it, automatically caching the data to sources like the file system, a Redis instance or a MongoDB database.
</p>
<blockquote>
Last year at the Symfony conference in Paris I have heard a really good quote: "There are only two hard things in Computer Science: cache invalidation and naming things" - Phil Karlton. I agree with it and it gave me a boost to keep evolving the concept.
</blockquote>
<p>
He includes an introduction to the caching features of <a href="http://github.com/tothimre/POC">the framework</a> complete with sample code showing first how to cache to the default file system and a more complex example that uses unique caches and page blacklists. Other features planned for the caching tool include edge-side includes, using Twig for templating and statistics recorded to a database.
</p>]]></description>
      <pubDate>Thu, 02 Feb 2012 12:10:21 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Shameer Chamal's Blog: Why Kohana is an awesome framework]]></title>
      <guid>http://www.phpdeveloper.org/news/15818</guid>
      <link>http://www.phpdeveloper.org/news/15818</link>
      <description><![CDATA[<p>
On his blog today <i>Shameer Chamal</i> has <a href="http://shameerc.com/2011/01/why-kohana-is-an-awesome-framework.html">a new post</a> about a framework he's recently developed an appreciation for (he calls it "awesome" in fact) - <a href="http://kohanaframework.org">Kohana</a>.
</p>
<blockquote>
In this article we will discuss some important features of Kohana, a promising and the sexiest community driven php framework. This article is pretty basic and intended to instigate those who are still not familiar with this framework. One of the problem with this framework is the lack of well organized documentation. Anyway there are many useful resources available and I have mentioned some of them at the end of this article.
</blockquote>
<p>
He talks about some of the things he likes best about the framework including its HMVC (hierarchical Model view controller) support allowing you to cascade files down, allowing overrides at any level (good illustration <a href="http://shameerc.com/wp-content/uploads/2011/01/cascading_filesystem.png">here</a>). He also talks about the scalability it offers and how, because of the HMVC functionality, you can split things up into interchangeable parts that can be pulled in based on the situation. Other features briefly mentioned include easy configuration, security and the exception handling and profiling.
</p>]]></description>
      <pubDate>Thu, 27 Jan 2011 10:04:36 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Adam Jensen's Blog: Flexible User Authentication with Zend_Auth]]></title>
      <guid>http://www.phpdeveloper.org/news/12316</guid>
      <link>http://www.phpdeveloper.org/news/12316</link>
      <description><![CDATA[<p>
<i>Adam Jensen</i> has <a href="http://jazzslider.wordpress.com/2009/04/09/flexible-user-authentication-with-zend_auth/">written up a new article</a> today on how you can use the Zend_Auth component of the Zend Framework to authenticate your users in a few different ways based on a strategy selected.
</p>
<blockquote>
For this example, we're going to allow our users to authenticate in one of multiple ways: e.g., against a database table, against an LDAP server, or by OpenID [1]. Zend_Auth already provides the necessary authentication adapters, so what we'll be concerned with here is how to implement all three systems without ending up in an <a href="http://blog.astrumfutura.com/archives/373-The-M-in-MVC-Why-Models-are-Misunderstood-and-Unappreciated.html">FSUC</a> situation.
</blockquote>
<p>
He defines the code for the basic controller and a simple view that allows the user to select how they want to log in - email/password, username/password or OpenID. The model does all of the heavy lifting by letting the controller set the authentication type (strategy) and pulling in the correct Zend_Form instance along with its validation rules. Code is also included for the model and each of these.
</p>]]></description>
      <pubDate>Fri, 10 Apr 2009 07:56:35 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Hartjes' Blog: Converting Legacy Apps to CakePHP, Part 3]]></title>
      <guid>http://www.phpdeveloper.org/news/11653</guid>
      <link>http://www.phpdeveloper.org/news/11653</link>
      <description><![CDATA[<p>
<i>Chris Hartjes</i> continues his series looking at converting over legacy applications into a CakePHP environment with <a href="http://www.littlehart.net/atthekeyboard/2008/12/30/converting-legacy-apps-to-cakephp-part-3/">this third part</a>, a focus on what can be one of the hardest parts - separating out business logic and presentation logic.
</p>
<blockquote>
Anyway, onto other matters. As you saw in parts 1 and 2, a bug part in having a successful transition from legacy app to CakePHP is having an environment that is well suited to the use of a framework. Having laid out the groundwork for that switchover, it's time to talk about the part of a refactoring or porting that is most difficult: separating your business logic from your display logic. 
</blockquote>
<p>
He talks about fat models, skinny controllers and flexible views with some code to illustrate each. This method makes the models do most of the work while the controllers are more of a go-between for them and the views. The views, then, are pliable enough to work with whatever data might be thrown at them.
</p>]]></description>
      <pubDate>Wed, 31 Dec 2008 12:58:33 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Knut Urdalen's Blog: Washing emails]]></title>
      <guid>http://www.phpdeveloper.org/news/11465</guid>
      <link>http://www.phpdeveloper.org/news/11465</link>
      <description><![CDATA[<p>
<i>Knut Urdalen</i> has <a href="http://www.urdalen.com/blog/?p=246">posted a new blog item</a> about something he calls "washing emails":
</p>
<blockquote>
In this tutorial I'll show you how to create a simple PHP script to cleanup a list of email addresses. As a web developer you have probably been asked to wash a list of emails from a manager or marketer some times. Here's the ultimate solution.
</blockquote>
<p>
His script does a few things - removes duplicates, validates that the email address exists, uses pipes for communication and is as flexible as possible to work on most PHP distributions. You can download the simple script <a href="http://www.urdalen.com/files/wash.phps">here</a>.
</p>]]></description>
      <pubDate>Thu, 27 Nov 2008 14:42:56 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Evert Pot's Blog: Integrating with Zend's OpenID]]></title>
      <guid>http://www.phpdeveloper.org/news/10855</guid>
      <link>http://www.phpdeveloper.org/news/10855</link>
      <description><![CDATA[<p>
In a <a href="http://www.rooftopsolutions.nl/article/200">new blog post</a> today <i>Evert Pot</i> shares some of his thoughts on integrating the Zend implementation of the OpenID protocol, <a href="http://framework.zend.com/manual/en/zend.openid.html">Zend_OpenId</a>, into his application.
</p>
<blockquote>
The <a href="http://framework.zend.com/">Zend Framework</a> has a pretty good <a href="http://framework.zend.com/manual/en/zend.openid.html">OpenID</a> library. I was looking for a library written for PHP5 (strict), and this seemed like a good choice...
</blockquote>
<p>
He mentions some of both sides of the argument - (the good) the flexibility of the library to work with different backend storage methods and (the bad) the requirements it has for the Zend Framework sessions system for authentication.
</p>]]></description>
      <pubDate>Tue, 19 Aug 2008 10:28:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPImpact Blog: Scalable and Flexible Directory Structure for Web Applications]]></title>
      <guid>http://www.phpdeveloper.org/news/10805</guid>
      <link>http://www.phpdeveloper.org/news/10805</link>
      <description><![CDATA[<p>
In <a href="http://phpimpact.wordpress.com/2008/08/11/scalable-and-flexible-directory-structure-for-web-applications/">this new post</a> on the PHP::Impact blog, <i>Federico</i> looks at some examples of directory setups for web apps that can help to make them both scalable and flexible.
</p>
<blockquote>
Designing a modular and component-based directory structure for your Web applications can seem like an easy task. If your system is small, it may seem logical to go with the simplest design possible, but if there's anything more time consuming and complex than developing a new directory structure design, it's trying to redesign an existing system that wasn't developed with growth in mind.
</blockquote>
<p>
He breaks it up into a few different topics that can be applied where needed to keep the application in check:
</p>
<ul>
<li>Consistency
<li>Scalability and Flexibility
<li>Single Application
<li>Multi-application
<li>Naming Conventions
<li>Versioning
<li>Proposed Structure
</ul>]]></description>
      <pubDate>Mon, 11 Aug 2008 11:17:30 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Harry Roberts' Blog: Flexible PHP Interfaces]]></title>
      <guid>http://www.phpdeveloper.org/news/10392</guid>
      <link>http://www.phpdeveloper.org/news/10392</link>
      <description><![CDATA[<p>
In an effort to breathe as much life into an old bit of software he was having to update, <i>Harry Roberts</i> worked up a <a href="http://codeb.us/flexible-php-interfaces">list of things</a> that he sees can make things a bit more "programmer friendly" when it comes to using classes, methods and interfaces in your code.
</p>
<p>His list of four is:</p>
<ul>
<li>Doc Comments
<li>Flexible Parameters
<li>Use method Entry contracts
<li>Be Stateful and Refactor
</ul>
<p>
The "Doc Comments" is pretty obvious, but some of the others need a bit more explaining. Being flexible with your parameters is more about requiring the least from a developer, "entry contracts" being the restrictions to let the developer know what you're expecting and refactoring commonly used functionality into a easy, single point of contact.
</p>]]></description>
      <pubDate>Wed, 11 Jun 2008 13:40:10 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[SitePoint PHP Blog: Last we checked, PHP IS a framework.]]></title>
      <guid>http://www.phpdeveloper.org/news/10367</guid>
      <link>http://www.phpdeveloper.org/news/10367</link>
      <description><![CDATA[<p>
According to <i>Akash Mehta</i> in <a href="http://www.sitepoint.com/blogs/2008/06/08/last-we-checked-php-is-a-framework/">this new post</a> on the SitePoint PHP blog, all of the frameworks out there aren't really needed because "last we checked, PHP IS a framework".
</p>
<blockquote>
Now, consider the "average" PHP frameworks. They help you handle request data, manage your output, control app flow - essentially, extending PHP's inbuilt functionality. They are, therefore, PHP frameworks on the PHP framework. PHP provides a vast array (pardon the pun) of functionality out of the box. But when you want to do things your way, it gets out of the way, and this is really important when building anything beyond a simple database frontend.
</blockquote>
<p>
He <a href="http://www.sitepoint.com/blogs/2008/06/08/last-we-checked-php-is-a-framework/">suggests</a> that PHP is a "half framework" on its own, providing quick an easy methods and functionality to build up applications. He gives an example of Twitter (and really, who isn't picking on them these days) and how it probably could have avoided a lot of the issues it is seeing if it had gone with something a bit more efficient and flexible.
</p>
<p>
Be sure to check out <a href="http://www.sitepoint.com/blogs/2008/06/08/last-we-checked-php-is-a-framework/#comments">the comments</a> for some other great opinions from the community.
</p>]]></description>
      <pubDate>Mon, 09 Jun 2008 09:33:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Blogge: Things You Must Know About CakePHP]]></title>
      <guid>http://www.phpdeveloper.org/news/8308</guid>
      <link>http://www.phpdeveloper.org/news/8308</link>
      <description><![CDATA[<p>
On the Blogge site, there's a <a href="http://www.dassnagar.com/blogge/2007/07/15/you_must_know_about_cakephp/">listing of "must knows"</a> that developers should understand about the CakePHP framework when working with it.
</p>
<blockquote>
CakePHP is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.
</blockquote>
<p>
Among those on <a href="http://www.dassnagar.com/blogge/2007/07/15/you_must_know_about_cakephp/">the list of handy tips</a> for using the framework are things like:
</p>
<ul>
<li>Static pages - Adjusting other data sent to the layout
<li>Viewing the SQL queries that are running behind the scenes
<li>Using bake.php
<li>Complex model validation
<li>Creating a model for a table that doesn't actually exist in the database
<li>Inserting multiple rows in succession
</ul>]]></description>
      <pubDate>Mon, 23 Jul 2007 12:52:00 -0500</pubDate>
    </item>
  </channel>
</rss>
