<?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 03:34:32 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Andrew Podner: Using Stackato for PHP Applications in a Private PaaS]]></title>
      <guid>http://www.phpdeveloper.org/news/19327</guid>
      <link>http://www.phpdeveloper.org/news/19327</link>
      <description><![CDATA[<p>
In <a href="http://unassumingphp.com/using-stackato-for-php-applications-in-a-private-paas/">this new post</a> to his site <i>Andrew Podner</i> looks at using the <a href="http://www.activestate.com/stackato">Stackato</a> software from ActiveState to provide a Platform-as-a-Service environment on any cloud infrastructure.
</p>
<blockquote>
So, now it is settled, I want to stay inside the corporate firewall, but I want each application isolated from the next, and by the way, there is no budget for any of this.  I posted about three <a href="http://unassumingphp.com/php-apps-and-platform-as-a-service/">PaaS providers</a> a while back, and started thinking that what I really needed was <a href="http://en.wikipedia.org/wiki/Platform_as_a_service">PaaS</a>, but I needed to be able to host the PaaS environment inside a corporate LAN.  Off to search the web. Surprisingly, there were not just a ton of viable results in that search.  Even more surprising...hard to find one with a "download here" button.  No matter how I searched though, one company & product kept popping up: <a href="http://www.activestate.com/stackato">Stackato by ActiveState</a>.  The words "Free Micro Cloud" were a very encouraging sign.  So let's take this thing for a spin and see just how easy it is...
</blockquote>
<p>
He walks you through the installation process - downloading the VMs, setting up the initial configuration and how to use the command line tool to deploy your own applications (several come preconfigured though). He also includes an example configuration (YAML) you can use to configure custom applications and some sample code showing a database connection.
</p>]]></description>
      <pubDate>Mon, 18 Mar 2013 12:17:51 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Nikita Popov's Blog: Understanding PHP's internal array implementation (Part 4)]]></title>
      <guid>http://www.phpdeveloper.org/news/17749</guid>
      <link>http://www.phpdeveloper.org/news/17749</link>
      <description><![CDATA[<p>
<i>Nikita Popov</i> has posted the <a href="http://nikic.github.com/2012/03/28/Understanding-PHPs-internal-array-implementation">fourth part</a> of the "PHP's Source Code for PHP Developers" series he and <i>Anthony Ferrara</i> have been posting. In this latest article in the series, <i>Nikita</i> looks specifically at PHP's array implementation and how it's handed "behind the scenes".
</p>
<blockquote>
Welcome back to the fourth part of the "PHP's Source Code for PHP Developers" series, in which we'll cover how PHP arrays are internally represented and used throughout the code base.
</blockquote>
<p>
He starts with an obvious foundation: "everything's a hash table" (even properties, classes and yes, arrays). He describes what a hash table is and talks about two of the most commonly used versions of it in the PHP source - HashTable and Bucket. He gets into their usage a bit and compares this to the corresponding PHP code that uses a standard array.
</p>]]></description>
      <pubDate>Thu, 29 Mar 2012 09:16:02 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Nikita Popov's Blog: Understanding PHP's internal function definitions (Part 2)]]></title>
      <guid>http://www.phpdeveloper.org/news/17688</guid>
      <link>http://www.phpdeveloper.org/news/17688</link>
      <description><![CDATA[<p>
Following <a href="http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html">this recent post</a> from <i>Anthony Ferraara</i> about the source code of the PHP language itself, <i>Nikita Popov</i> is working with him and has produced <a href="http://nikic.github.com/2012/03/16/Understanding-PHPs-internal-function-definitions">the second part</a> of the series, a look at finding the internal function definitions for the PHP functions you use every day.
</p>
<blockquote>
In the <a href="http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html">previous part</a> ircmaxell explained where you can find the PHP source code and how it is basically structured and also gave a small introduction to C (as that's the language PHP is written in). If you missed that post, you probably should read it before starting with this one. What we'll cover in this article is locating the definitions of internal functions in the PHP codebase, as well as understanding them.
</blockquote>
<p>
He starts with a basic example - a string function, <a href="http://php.net/strpos">strpos</a>. He shows a handy searching trick to help find the actual function definition and which matches should be given priority. He lays out a typical skeleton of a PHP function definition and gets into some detail as to what this particular function does (in C). He briefly mentions the Zend Engine functions and a look ahead to finding classes and methods.
</p>]]></description>
      <pubDate>Mon, 19 Mar 2012 08:17:48 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Brandon Savage's Blog: An XSS Vulerability In The Making]]></title>
      <guid>http://www.phpdeveloper.org/news/17640</guid>
      <link>http://www.phpdeveloper.org/news/17640</link>
      <description><![CDATA[<p>
<i>Brandon Savage</i> has a new post to his blog about what he calls a <a href="http://www.brandonsavage.net/an-xss-vulerability-in-the-making/">XSS vulnerability in the making</a>, something to watch out for when you're doing validation in PHP involving the possibility of numbers as strings.
</p>
<blockquote>
Back in September, <a href="https://crash-stats.mozilla.org/">Socorro</a> received a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=689675">security bug</a> relating to the method we were using for processing inputs for the duration of certain reports. The vulnerability included a proof of concept, with an alert box popping up on production when the link was followed. [...] I was quite surprised at the root cause of the vulnerability. We had opted to compare the incoming data against a known set of valid values - a common practice when whitelisting certain inputs. [...] As expected, when this [example] code is tested, a string of '3' and an integer of 3 work equally well, and a string of '5' and an integer of 5 fail equally. 
</blockquote>
<p>
This automatic casting that PHP does internally caused another issue as well - if the string passed in even started with a valid number from their whitelist set, it still passed.
</p>
<blockquote>
At first we thought this surely had to be a bug in PHP. However, Laura Thomson told me "If comparing two values, type juggling is performed first, which means that the string is converted to a number. This is done by <a href="http://us2.php.net/manual/en/language.types.string.php#language.types.string.conversion">taking the first number found in the string</a>. So this may be confusing/a quirk/a gotcha, but it isn't a bug." And she's right: this isn't a bug per se, but it's certainly an interesting "gotcha."
</blockquote>]]></description>
      <pubDate>Wed, 07 Mar 2012 12:02:46 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Alexey Zakhlestin's Blog: on PHP's webserver]]></title>
      <guid>http://www.phpdeveloper.org/news/15994</guid>
      <link>http://www.phpdeveloper.org/news/15994</link>
      <description><![CDATA[<p>
<i>Alexey Zakhlestin</i> has a new post today with some of <a href="http://blog.milkfarmsoft.com/2011/03/on-phps-webserver/">his own thoughts</a> on the <a href="http://wiki.php.net/rfc/builtinwebserver">suggestion for a built-in web server</a> (RFC) that's been floating around lately - a tool that would act as a simple server right out of the box without much in the way of configuration.
</p>
<blockquote>
There are a lot of talks today about <a href="http://wiki.php.net/rfc/builtinwebserver">"Built-in web server"</a> [for PHP] RFC by <a href="https://github.com/moriyoshi">Moriyoshi Koizumi</a>. There is a nice discussion on <a href="http://news.ycombinator.com/item?id=2281724">Hacker News</a> (and 2 threads on reddit: <a href="http://www.reddit.com/r/programming/comments/fw4dg/rfc_for_php_web_server_based_on_questionable/">here</a> and <a href="http://www.reddit.com/r/PHP/comments/fwf0p/built_in_web_server_for_php/">here</a>). So, here's couple of cents from me.
</blockquote>
<p>
<i>Alexey</i> agrees with the suggestion and notes it'd be a welcome addition to the PHP toolset. He also reminds developers that it wouldn't (and shouldn't) be used in production. 
</p>]]></description>
      <pubDate>Thu, 03 Mar 2011 13:19:04 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: PHP Developer Resources]]></title>
      <guid>http://www.phpdeveloper.org/news/11437</guid>
      <link>http://www.phpdeveloper.org/news/11437</link>
      <description><![CDATA[<p>
PHPBuilder.com has posted a <a href="http://www.phpbuilder.com/columns/php_resources20081120.php3">list of resources</a> that they offer to help both beginning and experienced PHP developers to further their knowledge:
</p>
<blockquote>
PHP is one of the most popular scripting languages used to develop applications on the web today. As a result, internet.com has a multitude of PHP resources throughout our network of websites. Here are some of our best PHP resources, along with some featured tutorials and out-of-network resources that you may not know about.
</blockquote>
<p>
The grouping of links also include external resources like the <a href="http://www.php.net/">main PHP site</a> and <a href="http://www.zend.com">Zend's website</a>.
</p>]]></description>
      <pubDate>Fri, 21 Nov 2008 08:07:39 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Greg Beaver's Blog: PHP namespaces become much better (Derick take note)]]></title>
      <guid>http://www.phpdeveloper.org/news/10462</guid>
      <link>http://www.phpdeveloper.org/news/10462</link>
      <description><![CDATA[<p>
<i>Greg Beaver</i>, noting some issues that <i>Derick Rethans</i> had <a href="http://greg.chiaraquartet.net/exit.php?url_id=655&entry_id=193">pointed out</a> about namespace support for upcoming PHP versions, has <a href="http://greg.chiaraquartet.net/archives/193-PHP-namespaces-become-much-better-Derick-take-note.html">posted about</a> a patch he submitted to solve the problem simply.
</p>
<p>
The issue <i>Derick</i> pointed out:
</p>
<blockquote>
In PHP 5.3 this would alias the class Interval in the namespace PEAR::Date to the class Interval. For now, this code would work just fine. However, if PHP would introduce a class "Interval" at some point in the future (and PHP can do this as it <a href="http://greg.chiaraquartet.net/exit.php?url=aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi91c2VybGFuZG5hbWluZy5ydWxlcy5waHA=&entry_id=193">owns the global namespace</a>) then the above code would suddenly stop working.
</blockquote>
<p>
<i>Greg</i>'s patch makes it possible to "override" the internal class if need be, making it so that code currently working wouldn't break. All it takes is to "use" is like you normally would and and the magic happens behind the scenes.
</p>]]></description>
      <pubDate>Mon, 23 Jun 2008 11:19:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Dokeos Blog: mbstring vs iconv]]></title>
      <guid>http://www.phpdeveloper.org/news/10034</guid>
      <link>http://www.phpdeveloper.org/news/10034</link>
      <description><![CDATA[<p>
In <a href="http://dokeoslead.wordpress.com/2008/04/22/mbstring-vs-iconv/">this post</a> on the Dokeos blog, there's a comparison of the <a href="http://www.php.net/mbstring">mbstring</a> function and the <a href="http://php.net/iconv">iconv</a> library as it pertains to their use on multi-byte strings.
</p>
<blockquote>
I was wondering today why use mbstring rather than iconv in Dokeos, and honestly I didn't remember exactly why I had chosen mbstring in the past, but finding information about the *differences* between the two. [...] Searching a bit more, I found a <a href="http://www.nyphp.org/content/presentations/smallworld/April2006-nyphp-Presentation.ppt">PPT presentation</a> from Carlos Hoyos on Google.
</blockquote>
<p>
Essentially, it boils down to how the library is integrated - mbstring is bundled and iconv is pulled from an external source. So, if you're looking for maximum portability, he recommends mbstring.
</p>]]></description>
      <pubDate>Thu, 24 Apr 2008 11:18:08 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stubbles Blog: Do not trust the reflection API]]></title>
      <guid>http://www.phpdeveloper.org/news/9507</guid>
      <link>http://www.phpdeveloper.org/news/9507</link>
      <description><![CDATA[<p>
On the Stubbles blog, <i>Frank Kleine</i> <a href="http://www.stubbles.org/archives/40-Do-not-trust-the-reflection-API.html">offers some advice</a> to developers looking to use the Reflection API - "don't trust it".
</p>
<blockquote>
If you try to get informations about parameters from methods of internal classes - forget that. Examining several internal classes my key findings are: either there is no information about parameters available and the reflection API says the method does not have any parameters, or the information about the parameter is wrong.
</blockquote>
<p>
He <a href="http://www.stubbles.org/archives/40-Do-not-trust-the-reflection-API.html">includes code examples</a> along side the output from the script to illustrate his point. 
</p>]]></description>
      <pubDate>Mon, 28 Jan 2008 13:07:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Internet Super Hero Blog: Debugging ext/mysqli and mysqlnd]]></title>
      <guid>http://www.phpdeveloper.org/news/8571</guid>
      <link>http://www.phpdeveloper.org/news/8571</link>
      <description><![CDATA[<p>
With all of the good news they've posted about the mysqlnd driver, the developers behind the Internet Super Hero blog know that there will be bugs that come up in the driver. So, they've <a href="http://blog.ulf-wendel.de/?p=159">addressed the right way</a> to find and deal with these issues in a new blog entry.
</p>
<blockquote>
he bad news: mysqlnd might have bugs. How to report and debug these bugs - using mysqli_debug() - is subject of this posting.
</blockquote>
<p>
They <a href="http://blog.ulf-wendel.de/?p=159">step you through</a> the process for finding out what's causing the problems (internal versus external debugging) and how to make client traces with the mysqi extension to make it even easier for the developers to track down the problem. They also suggest a few things to send along with your bug report - like the PHP code calling it or the SQL you're using to select/update/insert/delete the data from your database.
</p>]]></description>
      <pubDate>Mon, 03 Sep 2007 08:56:00 -0500</pubDate>
    </item>
  </channel>
</rss>
