<?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:34:56 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Sherif Ramadan: PHP OOP: Objects Under The Hood]]></title>
      <guid>http://www.phpdeveloper.org/news/18838</guid>
      <link>http://www.phpdeveloper.org/news/18838</link>
      <description><![CDATA[<p>
In another of his series looking "under the covers" at what actually happens in the PHP language during its use, <i>Sharif Ramadan</i> has posted <a href="http://sheriframadan.com/2012/12/php-oop-objects-under-the-hood/">this look at the object handling</a> in PHP's OOP functionality.
</p>
<blockquote>
I would love to take a good long look under the hood at just how PHP objects and classes do the work that they do, and hope that you could benefit from that knowledge. [There are] many questions that come across my desk, on a regular basis, from developers and beginner PHP enthusiasts that I've worked with over the years, and are some of the key points this article attempts to help you answer.
</blockquote>
<p>
He talks about classes "giving birth" to objects, how they're stored internal to PHP and how they provide the "blueprints" for it to lay out the storage of the object's data. He talks about using identifiers for variable/property access, object handlers and how "$this" fits into all of it. He notes that OOP, while a major part of PHP now, wasn't in the initial versions (until around PHP4). He finishes off the post talking about lateral/vertical context switching, the lifecycle of an object and the "early binding problem" and class scope.
</p>]]></description>
      <pubDate>Tue, 04 Dec 2012 09:15:27 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Eric Lamb's Blog: Practical PHP Reflection]]></title>
      <guid>http://www.phpdeveloper.org/news/16000</guid>
      <link>http://www.phpdeveloper.org/news/16000</link>
      <description><![CDATA[<p>
<i>Eric Lamb</i> came up against an interesting situation recently and found that PHP's Reflection API was the best thing to <a href="http://blog.ericlamb.net/2011/03/practical-php-reflection/">come to his rescue</a>.
</p>
<blockquote>
The perfect problem where the Reflection API appears to be the perfect solution. For me this came up a couple months ago while I was working on a European zip code radius project that had to be built using one of those obfuscated and ill documented 3rd party commercial programs (nothing worse than when the platform is forced on you). So, I had to use this program that was intentionally encoded to prevent me from doing what I wanted to do. I couldn't even look at the code; it was completely obfuscated.
</blockquote>
<p>
To illustrate his point, he gives examples of two built-in classes that PHP has and the result of their reflected output - SimpleXMLElement and DateTime. He shows how to get the structure of the class in general and how to use some of the more specific functions to get things like properties, methods and constants for the class. This is perfect for those undocumented features and isn't too far of a jump away from building out your own documentation.
</p>]]></description>
      <pubDate>Fri, 04 Mar 2011 12:23:28 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Reddit.com: Today I learned about variable variables...]]></title>
      <guid>http://www.phpdeveloper.org/news/15316</guid>
      <link>http://www.phpdeveloper.org/news/15316</link>
      <description><![CDATA[<p>
Over on Reddit.com there's an interesting post (yes, despite some of the comments made on it) about variable variables that turns into a <a href="http://www.reddit.com/r/programming/comments/dst56/today_i_learned_about_php_variable_variables/c12np38">detailed look at PHP variable handling</a> as based around "$".
</p>
<blockquote>
OK, here's the thing: [variable variables are] only the entrance of the rabbit hole. [...] The first thing to understand is what $ is. $ is actually a shorthand for ${} and means "return the value of the variable whose name is contained in this".
</blockquote>
<p>
The response goes on to talk about variable names as strings, a few string handling tricks that can be used when referencing them and how this works with objects too. Things get a bit more complicated when they start adding in more levels of "variable" and evaluations based on random results. Not overly useful information for the casual developer, but interesting to know none the less.
</p>]]></description>
      <pubDate>Thu, 21 Oct 2010 12:05:30 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Blue Parabola Blog: Magento Feature Analysis Series, Part 6: Customer Service Offering]]></title>
      <guid>http://www.phpdeveloper.org/news/13147</guid>
      <link>http://www.phpdeveloper.org/news/13147</link>
      <description><![CDATA[<p>
<i>Matthew Turland</i> has posted the <a href="http://blueparabola.com/blog/magento-feature-analysis-series-part-6-customer-service-offering">sixth part of his series</a> taking a detailed look at the features of the popular <a href="http://www.magentocommerce.com/">Magento</a> e-commerce platform on the Blue Parabola blog today.
</p>
<p>In this new article he covers:</p>
<ul>
<li>Contact Us Form
<li>Feature-Rich Customer Accounts
<li>Order History with Status Updates
<li>Order Tracking from Account
<li>Forgot Password E-mail
<li>Order and Account Update E-mails
<li>Customizable Order E-mails
<li>Create and Edit Orders from the Admin Panel
</ul>
<p>
Each item on the list comes with its own description and definition (as well as a few links to other resources where applicable).
</p>]]></description>
      <pubDate>Wed, 02 Sep 2009 07:58:39 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Davey Shafik's Blog: Detailed IDE Reviews: How do you want to do this?]]></title>
      <guid>http://www.phpdeveloper.org/news/12155</guid>
      <link>http://www.phpdeveloper.org/news/12155</link>
      <description><![CDATA[<p>
As a follow-up to <a href="http://www.phpdeveloper.org/news/12145">the IDE comparisons</a> he's done <i>Davey Shafik</i> has <a href="http://pixelated-dreams.com/archives/557-detailed-ide-reviews.html">asked the interested</a> for a little feedback on how they think he should move forward with the more detailed reviews of each tool.
</p>
<blockquote>
So, dear readers, I'm doing the IDE reviews for all of you guys and there's two ways I can proceed: I can take each of the requirements and do a single post per requirement with a writeup about it in detail for each of the 4 IDEs - then I was thinking for each new IDE I try, I can hit those same points. Or I can write up specifically on a single editor at a time, covering all of the requirements and I will also then review anything else about the editor etc.
</blockquote>
<p>
He's thinking of doing a comparison of the Eclipse-based IDEs in their own right, but wants to get feedback on what would be the most useful for other developers to learn from. Several <a href="http://pixelated-dreams.com/archives/557-detailed-ide-reviews.html#comments">comments</a> have already been made suggesting approaches to the topic, other editors that might be missing from the list and some support for the Eclipse comparison idea.
</p>]]></description>
      <pubDate>Tue, 17 Mar 2009 13:45:14 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Jones' Blog: The PHP "./configure --with-oci8" Option in Detail]]></title>
      <guid>http://www.phpdeveloper.org/news/12128</guid>
      <link>http://www.phpdeveloper.org/news/12128</link>
      <description><![CDATA[<p>
Just for those PHP & Oracle users out there <i>Chris Jones</i> has <a href="http://blogs.oracle.com/opal/2009/03/the_php_configure_withoci8_opt.html">posted a new entry</a> to his Oracle blog detailing the different ways you can compile with oci8 support.
</p>
<blockquote>
PHP OCI8 can be built using libraries from a full Oracle Database (or Database "Client") install, created from running the GUI installer. This is often referred to as an "ORACLE_HOME" install, since an environment variable of that name is set to the installed Oracle software directory. [...] Another dimension to the install is that PHP extensions can be statically compiled into the PHP executable(s), or built as shared binaries. If OCI8 is built as a shared library it is loaded into PHP as a result of setting the php.ini option "extension=oci8.so".
</blockquote>
<p>
There's eight different methods he mentions including building it as a shared module, using the normal Oracle libraries to build and using the Instant Client libraries to run the build.
</p>]]></description>
      <pubDate>Fri, 13 Mar 2009 07:58:07 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Nexen.net: PHP Statistics for January 2008]]></title>
      <guid>http://www.phpdeveloper.org/news/9625</guid>
      <link>http://www.phpdeveloper.org/news/9625</link>
      <description><![CDATA[<p>
<i>Damien Seguy</i> has posted this month's (well, January 2008's) PHP statistics to the Nexen.net website. Highlights from this edition include:
</p>
<ul>
<li>PHP 5 displays strong growth, almost at 30%
<li>PHP 5.2 will be more popular than PHP 4.3 before April
<li>PHP 5.2.5 is already the dominating version of PHP 5
<li>PHP 4.4.8 not so popular
</ul>
<p>
You can get the full details on this month's statistics from the full list of the <a href="http://www.nexen.net/chiffres_cles/phpversion/18090-php_statistics_for_january_2008.php">statistics</a> and the <a href="http://www.nexen.net/chiffres_cles/phpversion/18087-php_stats_evolution_for_january_2008.php">evolution</a> posted on Nexen.
</p>]]></description>
      <pubDate>Wed, 13 Feb 2008 15:11:34 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Lifting the Skirt on Zend Framework 1.5 - Zend_Form]]></title>
      <guid>http://www.phpdeveloper.org/news/9523</guid>
      <link>http://www.phpdeveloper.org/news/9523</link>
      <description><![CDATA[<p>
The Zend Developer Zone has "lifted the skirt" on a new feature in the Zend Framework today with <a href="http://devzone.zend.com/article/3030-Lifting-the-Skirt-on-Zend-Framework-1.5---Zend_Form">this new article</a> - a look at the Zend_Form component, a simple method for creating, validating and generally working with your user's input.
</p>
<blockquote>
Zend_Form gives you all the tools necessary to create forms and form elements via PHP code. Like everything in Zend Framework, almost everything is configurable; however the defaults are probably good for most uses.
</blockquote>
<p>
They <a href="http://devzone.zend.com/article/3030-Lifting-the-Skirt-on-Zend-Framework-1.5---Zend_Form">include some sample code</a> that shows the creation of both a simple, sample form and something a little bit more advanced - including validation methods and making fields required.
</p>]]></description>
      <pubDate>Wed, 30 Jan 2008 07:56:15 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Devshed: Database Details and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/8144</guid>
      <link>http://www.phpdeveloper.org/news/8144</link>
      <description><![CDATA[<p>
DevShed <a href="http://www.devshed.com/c/a/PHP/Database-Details-and-PHP/">continues their tutorial series</a> looking at working with PHP and databases today with more excerpted material from the O'Reilly book "Programming PHP, Second Edition" (by <i>Kevin Tatroe</i>, <i>Rasmus Lerdorf</i>, and <i>Peter MacIntyre</i>).
</p>
<blockquote>
Picking up from where we left off last week, we'll be discussing shortcuts, query responses, metadata, and more.
</blockquote>
<p>
They <a href="http://www.devshed.com/c/a/PHP/Database-Details-and-PHP/">start off</a> looking at shortcuts, those handy things the PEAR DB package offers to make life simpler (like getRow and getAssoc) before moving on to how to get the details about the response itself (like affectedRows and tableInfo). Next up is working with the metadata (using getListOf) and, finally, a sample application to tie them all together.
</p>]]></description>
      <pubDate>Thu, 28 Jun 2007 12:12:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stubbles Blog: Some remarks to serialization without pity]]></title>
      <guid>http://www.phpdeveloper.org/news/7485</guid>
      <link>http://www.phpdeveloper.org/news/7485</link>
      <description><![CDATA[<p>
In response to <a href="http://terrychay.com/blog/article/object-serialization-without-pity.shtml">Terry Chay's response</a> about his <a href="http://www.phpdeveloper.org/news/7453">previous blog post</a>, <i>Frank Kleine</i> has posted <a href="http://www.stubbles.org/archives/13-Some-remarks-to-serialization-without-pity.html">a few more comments</a> on the topic of object serialization and some of the assertions <i>Terry</i> made.
</p>
<blockquote>
<a href="http://terrychay.com/blog/article/object-serialization-without-pity.shtml">Terry Chay</a> made some remarks to <a href="http://www.stubbles.org/archives/12-Lazy-loading-of-classes-stored-in-a-session-without-__autoload.html">my last blog entry</a> about a solution for lazy class loading without using __autoload(). Some of his statements seem like I explained my implementation not good enough leading to wrong interpretations. In this blog entry I'll use some of his statements to take a deeper look into my implementation and show that he has drawed some conclusions which I want to disprove.
</blockquote>
<p>
He <a href="http://www.stubbles.org/archives/13-Some-remarks-to-serialization-without-pity.html">goes back</a> and corrects some of what <i>Terry</i> has said in his response, including showing a more detailed version of him implementation. Be sure to check out the comments for the post, though - <i>Terry</i> comes back and clarifies some of the comments he'd made including the framework talk and changes of perspective having seen the new code snippet/information.
</p>]]></description>
      <pubDate>Thu, 22 Mar 2007 10:39:00 -0500</pubDate>
    </item>
  </channel>
</rss>
