<?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>Tue, 18 Jun 2013 18:14:42 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Nikita Popov: How to add new (syntactic) features to PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18287</guid>
      <link>http://www.phpdeveloper.org/news/18287</link>
      <description><![CDATA[<p>
<i>Nikita Popov</i> has a new post to his site looking at how you can <a href="http://nikic.github.com/2012/07/27/How-to-add-new-syntactic-features-to-PHP.html">add your own syntactic features</a> directly to PHP (requires knowledge of the C language).
</p>
<blockquote>
Several people have recently asked me where you should start if you want to add some new (syntactic) feature to PHP. As I'm not aware of any existing tutorials on that matter, I'll try to illustrate the whole process in the following. At the same time this is a general introduction to the workings of the Zend Engine. So upfront: I apologize for this overly long post.
</blockquote>
<p>
He covers the usual "life" of a PHP script, how tokenization is handled and what happens when the script is parsed, compiled and executed. Code snippets are included to show you the points to add in your own syntax item - in their case, adding an "in" operator to see if a value is in an array (a one word version of <a href="http://php.net/in_array">this</a>).
</p>]]></description>
      <pubDate>Mon, 30 Jul 2012 09:54:34 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Brian Moon's Blog: Errors when adding/subtracing dates using seconds]]></title>
      <guid>http://www.phpdeveloper.org/news/17406</guid>
      <link>http://www.phpdeveloper.org/news/17406</link>
      <description><![CDATA[<p>
<i>Brian Moon</i> has <a href="http://brian.moonspot.net/errors-adding-subtracting-dates">a reminder about date handling</a> in PHP - days are not always 86400 seconds long, sometimes there's "leap seconds" included too. Thankfully, there's easy ways around it:
</p>
<blockquote>
The problem with this is that it assume that there are only 86400 seconds in every day. There are in fact not. On days when the clocks change for daylight savings time, there are either 1 hour more than that or 1 hour less than that. In addition, there are also <a href="http://en.wikipedia.org/wiki/Leap_second">leap seconds</a> put into our time system to keep us in line with the sun. There is one this year, 2012, on June 30th in fact. Since they don't happen with the regularity that daylight savings time does, it may be easy to forget those. Luckily, for this problem, the solution is the same.
</blockquote>
<p>
His first solution involves letting <a href="http://php.net/strtotime">strtotime</a> do the work for him, internally calculating the leap seconds or any other issue that might come up. As an alternate solution, he also mentions "doing your math at noon" - this gives you enough leeway to make the offset leap seconds could cause a much smaller risk.
</p>]]></description>
      <pubDate>Tue, 17 Jan 2012 11:19:22 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Script-Tutorials.com: How to Use APC Caching with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16860</guid>
      <link>http://www.phpdeveloper.org/news/16860</link>
      <description><![CDATA[<p>
On Script-Tutorials.com today there's a new article introducing you to <a href="http://www.script-tutorials.com/how-to-use-apc-caching-with-php/">using APC caching</a> in your PHP applications. Their simple example sets up a caching class that handles the dirty work for you.
</p>
<blockquote>
Today I have another interesting article for PHP. We will talking about caching, and practice of using caching in php. I will make review of APC caching and will show you how you can use APC in PHP. [...] Now people have learned to use the server memory for data storage. RAM much faster than hard disk, and the price of memory falls all the time, so let's use all these advantages of this.
</blockquote>
<p>
Included in the post is the code for a few different files - the caching class itself that implements the <a href="http://php.net/apc">APC</a> functions in PHP and some examples of it in use: saving objects, fetching data from the cache and removing things from the cache.
</p>]]></description>
      <pubDate>Thu, 15 Sep 2011 08:29:14 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ian Selby's Blog: Dynamically Add Functions to PHP Classes]]></title>
      <guid>http://www.phpdeveloper.org/news/11670</guid>
      <link>http://www.phpdeveloper.org/news/11670</link>
      <description><![CDATA[<p>
<i>Ian Selby</i> has <a href="http://www.gen-x-design.com/archives/dynamically-add-functions-to-php-classes/">posted a new tutorial</a> today looking at something that can be very handy in the right situations - dynamically adding new functions to an already defined PHP class.
</p>
<blockquote>
I've gotten a lot of great suggestions for features [for PHP Thumbnailer], and have wanted to add them, but at the same time don't as I would prefer not to bloat the class with all sorts of functionality. So I started thinking about how I could provide certain functionality for people that want it, without either simply making it a part of the class (and making it more bloated as a result), or coming up with all sorts of extended classes to maintain and distribute.
</blockquote>
<p>
His solution was to add functionality dynamically to the class as plugins. Each plugin is defined as its own class (to keep things standardized) and will be included/executed by a base controller class. He includes some sample code showing how to create a basic user object that can store the first and last names of the user in question.
</p>]]></description>
      <pubDate>Mon, 05 Jan 2009 10:26:50 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Vidyut Luther's Blog: Adding Subscribers to Campaign Monitor Lists using PHP5 and SOAP]]></title>
      <guid>http://www.phpdeveloper.org/news/11570</guid>
      <link>http://www.phpdeveloper.org/news/11570</link>
      <description><![CDATA[<p>
If you're a <a href="http://www.campaignmonitor.com/">Campaign Monitor</a> user (an email marketing tool targeted at designers) and have wanted to dynamically add people to your lists, <i>Vidyut Luther</i> has <a href="http://www.phpcult.com/blog/campaign-monitor-php5-soap/">a solution</a> for you:
</p>
<blockquote>
This is a quick how to, for people interested in adding subscribers to their  Campaign Monitor  lists. What you'll need: PHP 5 with SOAP built in, a Valid Campaign Monitor Account, a Campaign Monitor list.
</blockquote>
<p>
His simple script (about 10 lines with comments removed) makes a call to the service's API and passes in your key, a list and client ID and a call to the AddSubscriber method to push the new contact into the list.
</p>]]></description>
      <pubDate>Mon, 15 Dec 2008 09:33:07 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Havard Eide's Blog:  SplObjectStorage]]></title>
      <guid>http://www.phpdeveloper.org/news/10662</guid>
      <link>http://www.phpdeveloper.org/news/10662</link>
      <description><![CDATA[<p>
<i>Havard Eide</i> has a <a href="http://eide.org/2008/07/21/splobjectstorage/">recent post</a> to his blog that looks at a part of the Standard PHP Library (SPL) that can be used with objects to store them for later use - SplObjectStorage.
</p>
<blockquote>
In this post I will look at SplObjectStorage: a container that allows to store objects uniquely without the need to compare them one by one.
</blockquote>
<p>
He lets the code to most of the talking, showing how to do the standard operations for a data store - adding objects (both unique and the same), updating objects in the store, checking to see if an object is already added and removing an object from storage.
</p>]]></description>
      <pubDate>Wed, 23 Jul 2008 08:47:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ilia Alshanetsky's Blog: mail() logging for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/6891</guid>
      <link>http://www.phpdeveloper.org/news/6891</link>
      <description><![CDATA[<p>
In his <a href="http://ilia.ws/archives/149-mail-logging-for-PHP.html">latest blog entry</a>, <i>Ilia Alshanetsky</i> has proposed (and provided) a patch that can help with one of the more abused of the popular PHP functions out there - mail().
</p>
<blockquote>
One of the problems with solving the mail() abuse is figuring out who is doing it or perhaps what script was exploited to do it, since the mail() function does not offer any logging mechanism.
</blockquote>
<p>
To address this problem, he's supplied <a href="http://ilia.ws/uploads/patches/mail_log.txt.gz">this patch</a> you can apply to your source to add two new options to the mail function:
<ul>
<li>enable the addition of the X-PHP-Originating-Script header
<li>mail.log (takes a filename) allows you to enable logging of every single mail() call
</ul>
Check out <a href="http://ilia.ws/archives/149-mail-logging-for-PHP.html">his entry</a> for more details on configuration options and other functionality included with the patch.
</p>]]></description>
      <pubDate>Wed, 13 Dec 2006 16:56:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[JSLabs Blog:  Top 10 PHP frameworks (for 11.28.2006)]]></title>
      <guid>http://www.phpdeveloper.org/news/6787</guid>
      <link>http://www.phpdeveloper.org/news/6787</link>
      <description><![CDATA[<p>
The JSLabs website has <a href="http://www.whenpenguinsattack.com/2006/11/28/top-10-php-frameworks-2/">posted a new list</a> of what they see as the current Top Ten of PHP frameworks out there. It differs slightly from <a href="http://www.whenpenguinsattack.com/2006/07/12/top-10-php-frameworks/">the previous list</a>, including some of the newcomers and dropping some that have fallen behind.
</p>
<p>
Added to the list were:
<ul>
<li><a href="http://www.symfony-project.com/">symfony</a>
<li><a href="http://framework.zend.com/">Zend Framework</a>
<li><a href="http://www.cakephp.org/">CakePHP</a>
<li><a href="http://www.codeigniter.com/">Code Igniter</a>
<li><a href="http://www.pradosoft.com/">Prado</a>
</ul>
And dropped from the list were:
<ul>
<li><a href="http://ez.no/products/ez_publish">eZ publish</a>
<li><a href="http://sourceforge.net/projects/krill/">Krill</a>
<li><a href="http://sourceforge.net/projects/php-booba/">php-booba</a>
<li><a href="http://www.edit-x.com/">edit-x</a>
<li><a href="http://www.binarycloud.com/">Binary Cloud</a>
</ul>
Each of the frameworks in <a href="http://www.whenpenguinsattack.com/2006/11/28/top-10-php-frameworks-2/">the list</a> have a brief description to give you a feel for what the project is all about.
</p>]]></description>
      <pubDate>Wed, 29 Nov 2006 07:37:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Unit Testing in Detail]]></title>
      <guid>http://www.phpdeveloper.org/news/6583</guid>
      <link>http://www.phpdeveloper.org/news/6583</link>
      <description><![CDATA[<p>
Continuing in their effort to help PHP developers keep their code bug-free, DevShed has posted <a href="http://www.devshed.com/c/a/PHP/Unit-Testing-in-Detail/">part two of the series</a> looking at unit testing your applications. Previously they had <a href="http://www.phpdeveloper.org/news/6533">looked at the basics</a> - of they work and what they're for. This time, they dig a little deeper, showing some of the additional features and conditions that <a href="http://phpunit.sourceforge.net/">PHPUnit</a> has to offer.
</p>
<blockquote>
This week, you will learn about running multiple tests simultaneously, creating more informative error messages, and more.
</blockquote>
<p>
They get back into something they mentioned briefly before - packaging tests in a separate archive to keep it out of the main body of code (the same way separating content and display functionality is good). They also talk about how to run more than one test at the same time, a handy feature that lets you make regression tests.
</p>
<p>
They <a href="http://www.devshed.com/c/a/PHP/Unit-Testing-in-Detail/1/">also show</a> how to create more informative error messages and how to manually add more testing conditions for you to check custom bits of code that don't quite fit with the assertNull, assertEquals, and assertFalse crowd.
</p>
<p>
This article is an excerpt from the Sams Publishing book "Advanced PHP Programming" by <i>George Schlossnagle</i>.
</p>]]></description>
      <pubDate>Thu, 26 Oct 2006 09:58:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sitecritic.net: Simple Content Management in PHP Without Database Access]]></title>
      <guid>http://www.phpdeveloper.org/news/5998</guid>
      <link>http://www.phpdeveloper.org/news/5998</link>
      <description><![CDATA[<p>
For all of the content management systems that are out there, most of them have something in common (well, a lot in common, but that's more than I mean) - they all use databases to manage their information. Sometimes, that's just not what a developer really needs. All they want is a simple, light, file-based solution. Well, <a href="http://www.sitecritic.net/articleDetail.php?id=188">this new tutorial</a> from Sitecritic.net can help. It details the creation of a simple file-based management system, including login abilities.
</p>
<blockquote>
<p>
A Content Management System (CMS) allows you to update your website easily without touching anything in the backend. If you are a non-IT person, you will almost always want a CMS for your website because it makes you less dependent on your web designers or developers to add, edit or delete contents in your website.
</p>
<p>
There are many good CMS out there but most of them require some sort of database access in the backend. Many PHP CMS uses mysql or postgres database which resides in the server. Installation and troubleshooting of CMS might require some technical knowledge and server configuration which could be daunting for some.
</p>
</blockquote>
<p>
<a href="http://www.sitecritic.net/articleDetail.php?id=188">The tutorial</a> steps you through the login form first, then creating the template HTML files, before adding in the adding and editing functionality to store the content in the files. The <a href="http://web-developer.sitecritic.net/simple_cms_without_DB.php">full source</a> for the application is also available for download.
</p>]]></description>
      <pubDate>Thu, 10 Aug 2006 07:26:50 -0500</pubDate>
    </item>
  </channel>
</rss>
