<?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>Sun, 19 May 2013 17:54:43 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Tom Butler: PHP: PSR-0: Pretty Shortsighted, Really]]></title>
      <guid>http://www.phpdeveloper.org/news/19469</guid>
      <link>http://www.phpdeveloper.org/news/19469</link>
      <description><![CDATA[<p>
In a new post to his site <i>Tom Butler</i> gives some reasoning as to why he <a href="http://r.je/php-psr-0-pretty-shortsighted-really.html">thinks PSR-0 is shortsighted</a> and some examples of a possible better alternative.
</p>
<blockquote>
A little background for those unaware of what PSR-0 is: There's a self-declared PHP "standards" group called PHP-FIG attempting to push several "standards" throughout the PHP community. [...] I have little interest in debating the politics behind pushing standards or whether small groups of developers trying to make decisions that affect the entire community is good or not, but I do object to the PSR-0 standard itself. My issues are purely practical, PSR-0 reduces flexibility and makes life more difficult for developers
</blockquote>
<p>
While he likes the idea of a standard way to be able to include third-party libraries that can be reused in multiple systems, he suggests that it answers the wrong question. In his view, it should be up to the library/tool developers to ensure the structure of their code to work with a standard, not the other way around. He points out that a "standard" is something that should apply to all situations and some of the workarounds that are needed for PSR-0 negate this idea.
</p>
<p>
In his alternative method, he suggests an "Autloadable" interface that can be implemented by the library/tool that includes a "load" method to handle the actual class loading. Then this autoloader would be registered via a json configuration file for the package. This allows the developer to control the loading and place any exceptions they might need into their own logic instead of trying to work around possible issues with the PSR-0 loading scheme.
</p>
<blockquote>
PSR-0 is a bad solution to a good problem. If you take anything from reading this post, remember this: If the standard defined how autoloaders could be extended, rather than how autoloaders worked, then each library or vendor could provide its own extension to the autoloader and everyone would be happy.
</blockquote>
Link: http://r.je/php-psr-0-pretty-shortsighted-really.html]]></description>
      <pubDate>Tue, 16 Apr 2013 13:12:14 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: Nomad PHP - the Virtual PHP User Group]]></title>
      <guid>http://www.phpdeveloper.org/news/19435</guid>
      <link>http://www.phpdeveloper.org/news/19435</link>
      <description><![CDATA[<p>
If you've wanted to get involved in a PHP user group but either don't have one in your area or travel so much it makes it impractical, there's a new group that might interest you - <a href="http://nomadphp.com/">Nomad PHP</a>. It's a virtual user group that you can attend. It's still in the beginning stages, but you can express your interest and get more details as they come.
</p>
<blockquote>
Tired of seeing all the great speakers other PHP User Groups are hearing and lamenting that there is no group near you? Nomad PHP User Group is just for you. We meet on-line, so you can participate wherever you are [and] will have well known as well as brand new speakers. You'll also get access to the recordings to review later.
</blockquote>
<p>
They point out that this isn't intended as a replacement for a local user group if you have one - interaction with peers and being a part of the community is still important. This is just an alternative. If this sounds interesting, head over and <a href="http://nomadphp.com/">enter your information</a> to be contacted with more info about the group.
</p>
Link: http://nomadphp.com]]></description>
      <pubDate>Tue, 09 Apr 2013 12:41:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Avoid the Original MySQL Extension, Part 1]]></title>
      <guid>http://www.phpdeveloper.org/news/19188</guid>
      <link>http://www.phpdeveloper.org/news/19188</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new post, the first in a series, about <a href="http://phpmaster.com/avoid-the-original-mysql-extension-1/">avoiding the original MySQL extension</a> in favor of what <a href="http://php.net/mysqli">mysqli</a> has to offer. The cover some of the basics of the extension and include code showing its use.
</p>
<blockquote>
Experienced developers eschew the original MySQL extension because of its abandoned status in PHP. Nascent web developers, however, may be completely oblivious to its dormant past and dying future. [...] It is therefore the intention of this two-part article to raise awareness among developers who still use the MySQL extension, inform them of its problems, and to help them switch over to an alternative extension.
</blockquote>
<p>
They start with a brief look at the "what's wrong" with the MySQL extension (including its upcoming deprecation). The article then gets into the basics of MySQLi and how to do things like make a connection and run a few queries. There's also a bit about prepared statements and the built-in ability to do "multi-queries" (complete with rollbacks).
</p>]]></description>
      <pubDate>Fri, 15 Feb 2013 11:13:29 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Rob Allen: Sending an HTML with text alternative email with ZendMail]]></title>
      <guid>http://www.phpdeveloper.org/news/18689</guid>
      <link>http://www.phpdeveloper.org/news/18689</link>
      <description><![CDATA[<p>
<i>Rob Allen</i> has a <a href="http://akrabat.com/zend-framework-2/sending-an-html-with-text-alternative-email-with-zendmail/">quick tutorial posted</a> to his site today showing you how to send an email with the ZendMail component of the Zend Framework 2 that contains HTML but provides a plain text backup in the same message.
</p>
<blockquote>
Sending a multi-part email with ZendMail is easy enough, but if you want to send an HTML email with a text alternative, you need to remember to set the content-type in the headers to multipart/alternative. As this is the second time I had to work this out, I'm noting it here for the next time I forget!
</blockquote>
<p>
The rest of the post is the code you'll need to send a simple email with a text and HTML body sections, configure the headers (to, from, etc) and the "multipart/alternative" header to make the HTML or plain text switching work correctly.
</p>]]></description>
      <pubDate>Fri, 02 Nov 2012 10:26:20 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[7PHP.com: Interview with Patrick Allaert - Creator of the Alternative PHP Monitor]]></title>
      <guid>http://www.phpdeveloper.org/news/18567</guid>
      <link>http://www.phpdeveloper.org/news/18567</link>
      <description><![CDATA[<p>
7PHP.com has posted another interview with a PHP community member - this time it's <a href="http://7php.com/php-interview-patrick-allaert/">Patrick Allaert</a>, the creator of the <a href="http://code.google.com/p/peclapm/">Alternative PHP Monitor</a> project (a monitoring extension for PHP, collects error events and store them in a local SQLite database).
</p>
<blockquote>
In this edition I talked with [Patrick Allaert <a href="http://twitter.com/patrick_allaert">@patrick_allaert</a>], the creator and lead developer of the <a href="http://code.google.com/p/peclapm/">Alternative PHP Monitor</a> extension. Patrick is also an <a href="http://ez.no/">eZ Publish</a> expert where he is currently a Third line support engineer prior to being their System developer back in 2010. He is an Open Source lover and is a prominent Board member at the famous and amazing PHP group named <a href="http://www.phpbenelux.eu/">PHPBenelux</a>.
</blockquote>
<p>
<i>Patrick</i> answers questions about his history as a developer, what kind of environment he likes to work in, his opinions on PHP and some of the best resources he'd recommend for people learning the language. He also talks some about the <a href="http://code.google.com/p/peclapm/">APM</a> project - what it does, how it can be used and what some of his future plans are for the tool.
</p>]]></description>
      <pubDate>Mon, 08 Oct 2012 09:23:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[MaltBlue.com: Why Kohana is an Excellent Alternative to Zend Framework]]></title>
      <guid>http://www.phpdeveloper.org/news/18257</guid>
      <link>http://www.phpdeveloper.org/news/18257</link>
      <description><![CDATA[<p>
On MaltBlue.com today <i>Matt</i> has a new article posted describing why he thinks <a href="http://www.maltblue.com/php/why-kohana-is-an-excellent-alternative-to-zend-framework">Kohana is a good alternative</a> to the Zend Framework in some projects.
</p>
<blockquote>
recently I've been doing a lot of research in to some of the best PHP frameworks and codebases, including <a href="http://www.symfony-project.org/installation/1_4">Symfony 1</a> & <a href="http://symfony.com/">Symfony 2</a>, <a href="http://drupal.org/">Drupal</a>, <a href="http://cakephp.org/">CakePHP</a> and <a href="http://kohanaframework.org/">Kohana</a> for a technical documentation project that I've been working on. [...] Well, to say the least, I was really surprised at just how simple, lightweight and easy Kohana is to use. Wow, what a true breath of fresh air it is after using <a href="http://framework.zend.com/">Zend Framework</a> for so long now.
</blockquote>
<p>
He talks some about the things he likes about the framework (including a well-structured configuration file and its overall speed) and includes a simple "getting started" tutorial. He shows you how to make a simple application that includes database support, caching and the MVC stack to display a list of users.
</p>]]></description>
      <pubDate>Mon, 23 Jul 2012 08:49:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Reddit.com: What everyone should know about strip_tags()]]></title>
      <guid>http://www.phpdeveloper.org/news/17282</guid>
      <link>http://www.phpdeveloper.org/news/17282</link>
      <description><![CDATA[<p>
In <a href="http://www.reddit.com/r/PHP/comments/nj5t0/what_everyone_should_know_about_strip_tags/">this new post to Reddit</a>, the author shares a bit of their knowledge on what they think everyone should know about <a href="http://php.net/strip_tags">strip_tags</a> and some of the issues that can come with it (including security problems).
</p>
<blockquote>
<a href="http://www.php.net/manual/en/function.strip-tags.php">strip_tags</a> is one of the common go-to functions used for making user input on web pages safe for display. But contrary to what it sounds like it's for, strip_tags is never, ever, ever the right function to use for this and it has a lot of problems.
</blockquote>
<p>
Specific problems mentioned include "eating" of valid text, not preventing typed HTML entities, the whitelist of tags opening holes and character set issues that could have security implications. Other tools are recommended in both the article and the comments like <a href="http://htmlpurifier.org/">HTML Purifier</a>, the option of <a href="https://secure.wikimedia.org/wikipedia/en/wiki/BBCode">BBCode</a> and <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Markdown">Markdown</a>.
</p>]]></description>
      <pubDate>Tue, 20 Dec 2011 10:58:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Erskine Labs Blog: What should they know of PHP who only PHP know?]]></title>
      <guid>http://www.phpdeveloper.org/news/16569</guid>
      <link>http://www.phpdeveloper.org/news/16569</link>
      <description><![CDATA[<p>
On the Erskine Labs blog today there's a new post from <i>Wil Linssen</i> with a suggestion to PHP developers who specialize in the language - <a href="http://erskinelabs.com/what-should-they-know-php-who-only-php-know/">take the time to learn another language</a> and broaden your skills.
</p>
<blockquote>
So many languages share fundamental principles, and indeed many are even derived from the same concepts, but because they differ in their approach there's something new to understand in each. It's these differences that will frequently bolster your understanding of your primary language, or indeed of programming as a whole.
</blockquote>
<p>
He notes that it's not just PHP developers that pigeon hole themselves into one language - developers on other languages do to. He recommends they lift their heads up and branch out and stop attacking other languages with "language X is best" articles.
</p>
<blockquote>
It's stepping outside of your comfort zone and engaging with the underlying concepts of the languages and tools you are using that will enable you to grow as a developer. 
</blockquote>]]></description>
      <pubDate>Fri, 08 Jul 2011 12:15:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Johannes Schluter's Blog: Escaping from the statement mess]]></title>
      <guid>http://www.phpdeveloper.org/news/16360</guid>
      <link>http://www.phpdeveloper.org/news/16360</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Johannes Schluter</i> suggests an alternative to using prepared statements in PHP applications using a database - <a href="http://schlueters.de/blog/archives/155-Escaping-from-the-statement-mess.html">creating a handler method</a> that allows for dynamic queries as well as proper escaping of values.
</p>
<blockquote>
Now prepared statements were a nice invention some 30 years ago abut they weren't meant for making things secure and so they do have some shortcomings: One issue is that preparing and executing a query adds a round-trip to the server where it then requires resources. [...] With prepared statements you first have to build the list of place holders (the exact amount of place holders (?) separated by a comma, without trailing comma)  and then bind the values and mind the offsets when having other values - this typically becomes ugly code.
</blockquote>
<p>
He includes the code for his alternative, a function using the <a href="http://php.net/mysqli">mysqli</a> extension to let you create dynamic SQL that still uses placeholders and proper escaping to prevent both SQL injection issues and resources problems caused by the multiple hops back to the database.
</p>]]></description>
      <pubDate>Thu, 19 May 2011 09:30:45 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stefan Koopmanschap's Blog: API documentation in Jenkins with DocBlox]]></title>
      <guid>http://www.phpdeveloper.org/news/16281</guid>
      <link>http://www.phpdeveloper.org/news/16281</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Stefan Koopmanschap</i> shows you how to <a href="http://www.leftontheweb.com/message/API_documentation_in_Jenkins_with_DocBlox">get DocBlox installed</a> for your documentation-generation needs as an alternative to <a href="http://www.phpdoc.org/">phpDocumentor</a>.
</p>
<blockquote>
People using PHP that want API documentation usually automatically think of <a href="http://www.phpdoc.org/">phpDocumentor</a>, which used to be the de facto standard for generating API documentation from your PHP projects. However, the project has been dormant for a long time now and definitely does not support new PHP features such as namespaces, so it was really time to look for an alternative. In this blogpost, I'll show you how I set up my Jenkins CI to use DocBlox, one of the new API documentation generators currently available.
</blockquote>
<p>
The <a href="http://docblox-project.org/">DocBlox project</a> is in active development and supports additional things in top of the current feature set phpDocumentor includes. <i>Stefan</i> gives you the exact XML you'll need to include in your Jenkins build file (and the phpDocumentor line it will likely replace) that builds out the documentation to a given path. He's given an example <a href="https://github.com/skoop/phpOpenNOS/blob/master/build.xml">of his full build file</a> to give you some context too.
</p>]]></description>
      <pubDate>Mon, 02 May 2011 11:26:40 -0500</pubDate>
    </item>
  </channel>
</rss>
