<?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 20:49:41 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Christopher Martinez: Static code analysis tools for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19563</guid>
      <link>http://www.phpdeveloper.org/news/19563</link>
      <description><![CDATA[<p>
<I>Christopher Martinez</i> has a recent post to his site that covers some of the <a href="http://chrsm.org/2013/05/05/code-analysis-tools-for-php">static analysis tools available for PHP</a> including the PHP Mess Detector, PHP CodeSniffer and the PHP Analyzer.
</p>
<blockquote>
I believe in writing code that is easy to understand, easy to test, and easy to refactor. Yes, I realize that the statement above is pretty general and open to interpretation. Not everyone needs external tools to ensure quality in their code...but, I work on things from time to time that have absolutely no tests. [...] For whatever reason, this happens a lot more frequently in the PHP world. I'm guilty of not writing tests and checking how I write code, sometimes, too. Things are bright, though, for the PHP community - for quite some time now, we've had fantastic tools that assist us in writing better code. 
</blockquote>
<p>
He covers each of the tools, talks some about what they're good for and gives examples of their use, including output. He also talks some about the <a href="https://github.com/facebook/pfff">Pfff</a> set of tools created by Facebook. He also talks some about how these tools fit into his daily work as a part of his pre-commit hooks in git.
</p>
Link: http://chrsm.org/2013/05/05/code-analysis-tools-for-php]]></description>
      <pubDate>Wed, 08 May 2013 12:38:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Reddit.com: How to progress my PHP skills?]]></title>
      <guid>http://www.phpdeveloper.org/news/19519</guid>
      <link>http://www.phpdeveloper.org/news/19519</link>
      <description><![CDATA[<p>
On Reddit.com a reader has asked the community what they think he needs to do to <a href="http://www.reddit.com/r/PHP/comments/1d32dr/how_to_progress_my_php_skills/">progress his PHP skills</a> past the "little bit" he's learned so far.
</p>
<blockquote>
Last summer I started learning a little bit of PHP, knowing HTML and CSS drove me towards wanting to learn some PHP for fun. I went through a pretty simple book, and made some simple websites (registration and message system, user submitted data, file uploads) using mostly tutorials which I tweaked a little bit. Since last summer I haven't learned anything new, but now that summer is coming along again I might be a bit bored, so I have been thinking of attempting to learn even more.
</blockquote>
<p>Suggestions included in the comments are things like:</p>
<ul>
<li>Learn about software architecture.
<li>Understand your environment. 
<li>I very highly suggest learning a PHP framework.
<li><a href="http://www.phptherightway.com">http://www.phptherightway.com</a>
<li>Start learning industry tools for PHP. It will all influence your coding style, and illustrate why some styles are considered best practices.
<li>To add to the other suggestions, I recommend becoming a regular contributor to one or more open source projects. 
<li>What helped me a lot was to write my own micro framework using OOP that I can now use for future websites and web applications.
<li>Come up with a 'complex' web site/application idea and get to it. Bonus points if you can launch it and make money off it (half kidding).
</ul>
<p>
You can read the full set of comments for more good suggestions <a href="http://www.reddit.com/r/PHP/comments/1d32dr/how_to_progress_my_php_skills/">here</a>.
</p>
Link: http://www.reddit.com/r/PHP/comments/1d32dr/how_to_progress_my_php_skills]]></description>
      <pubDate>Mon, 29 Apr 2013 10:22:47 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[/Dev/Hell Podcast: Episode 31: Feline Tooth Extraction]]></title>
      <guid>http://www.phpdeveloper.org/news/19512</guid>
      <link>http://www.phpdeveloper.org/news/19512</link>
      <description><![CDATA[<p>
The /Dev/Hell podcast has posted their latest episode - <a href="http://devhell.info/post/2013-04-24/feline-tooth-extraction/">Episode #31 - Feline Tooth Extraction</a>. The podcast is hosted by PHP community members <i>Chris Hartjes</i> and <i>Ed Finkler</i>.
</p>
<blockquote>
Short notes time: In this episode, Chris and Ed talk about conferences we always wanted to go to, and languages & tools we'd thought we'd hate and turned out to like. Then Ed waxes on the <a href="http://openrecip.es/">Open Recipes</a> project.
</blockquote>
<p>
You can listen to this latest episode either through the <a href="http://devhell.info/post/2013-04-24/feline-tooth-extraction/">in-page player</a> or by <a href="http://devhell.s3.amazonaws.com/ep31-64mono.mp3">downloading the mp3</a>. Links to all of the technologies and tools they mention are in the show's notes on the page.
</p>
Link: http://devhell.info/post/2013-04-24/feline-tooth-extraction]]></description>
      <pubDate>Fri, 26 Apr 2013 10:22:24 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lars Strogny: The state of meta programming in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18830</guid>
      <link>http://www.phpdeveloper.org/news/18830</link>
      <description><![CDATA[<p>
<i>Lars Strojny</i> has <a href="http://usrportage.de/archives/938-The-state-of-meta-programming-in-PHP.html">written up a new post</a> about the current state of metaprogramming (software that writes other software) and how it sits in today's PHP functionality including some current features to make it happen.
</p>
<blockquote>
Metaprogramming is quite an interesting sub-discipline and knowing about certain techniques and tools allows you to cut corners quite dramatically for certain tasks. As always, don't overdo but to find out when you are overdoing, first start doing, get excited, overdo, find out the right dose. Let's have a look at what kind of tools you have available in PHP to solve typical meta programming problems.
</blockquote>
<p>
He starts by defining what kinds of things metaprogramming can and can't do (like  type introspection, lower level syntax inspection and metadata management) and gets into what you can use in/with PHP for each. He mentions several tools, some internal to PHP - like the <a href="http://php.net/reflection">Reflection API</a> and the <a href="http://php.nert/tokenizer">Tokenizer</a> extension - as well as external projects like the <a href="https://github.com/nikic/PHP-Parser">PHP-Parser</a>, <a href="http://aop-php.github.com/>AOP</a> in PECL and annotation support from the <a href="https://github.com/doctrine/common/">doctrine-common</a> package.
</p>]]></description>
      <pubDate>Mon, 03 Dec 2012 09:03:29 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Volker Dusch: If it's not written in PHP it's irrelePHPant!]]></title>
      <guid>http://www.phpdeveloper.org/news/18773</guid>
      <link>http://www.phpdeveloper.org/news/18773</link>
      <description><![CDATA[<p>
<i>Volker Dusch</i> has a new <a href="http://edorian.posterous.com/if-its-not-written-in-php-its-irrelephpant">tongue-in-cheek post</a> to his site talking about a few pieces of useful software that are not written in PHP...and why not?
</p>
<blockquote>
Dear PHP Community, we need to have a talk about the insufferable state of your software stacks. It was recently brought to my attention that there is software out there, software we use every day!, that is NOT written in PHP. This is completely unacceptable! We are PHPeople! We're not "Web" Developers, we are the web. And we sure as hell are not some fancy "Software Developer", you can ask anyone on the internet! Seriously: If it's not PHP how will we ever be able to extend and adapt it to our needs! We are slaves of our tools!
</blockquote>
<p>
He mentions several tools that, yes, while not written in PHP are very useful to just about any developer out there (including git, Puppet and Apache). But, more seriously:
</p>
<blockquote>
PHP is a language that enables absolute beginners to start creating on the web using FTP and notepad! It let's us realize and validate our ideas blazingly fast and allows us to adapt our successful ideas to beautifully scale with our requirements providing and relying on solid, battle-proof tools.
</blockquote>]]></description>
      <pubDate>Tue, 20 Nov 2012 09:11:51 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Smashing Magazine: Powerful Command Line Tools For Developers]]></title>
      <guid>http://www.phpdeveloper.org/news/18675</guid>
      <link>http://www.phpdeveloper.org/news/18675</link>
      <description><![CDATA[<p>
On the Smashing Magazine site today they've <a href="http://coding.smashingmagazine.com/2012/10/29/powerful-command-line-tools-developers/">posted a list of powerful CLI tools</a> that every developer should at least know about to help make their lives easier - six of them ranging from SSH tunnels to HTTP testing.
</p>
<blockquote>
Good tools are invaluable in figuring out where problems lie, and can also help to prevent problems from occurring in the first place, or just help you to be more efficient in general. Command line tools are particularly useful because they lend themselves well to automation and scripting, where they can be combined and reused in all sorts of different ways. Here we cover six particularly powerful and versatile tools which can help make your life a little bit easier.
</blockquote>
<p>The tools they mention are all things you'd install on a unix-based system:</p>
<ul>
<li>Curl
<li>Ngrep (network packet searching)
<li>Netcat (to work with network connections)
<li>Sshuttle (SSH tunneling)
<li>Siege (HTTP benchmarking)
<li>Mitmproxy (capturing proxy, both HTTP and HTTPS)
</ul>]]></description>
      <pubDate>Tue, 30 Oct 2012 10:18:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Smashing Magazine: Why Coding Style Matters]]></title>
      <guid>http://www.phpdeveloper.org/news/18661</guid>
      <link>http://www.phpdeveloper.org/news/18661</link>
      <description><![CDATA[<p>
On the Smashing Magazine site there's a new article talking about <a href="http://coding.smashingmagazine.com/2012/10/25/why-coding-style-matters/">coding style matters</a> with developing projects with multiple people (or even possible contributors in the future) involved.
</p>
<blockquote>
Coding style is how your code looks, plain and simple. And by "your," I actually mean you, the person who is reading this article. Coding style is extremely personal and everyone has their own preferred style. You can discover your own personal style by looking back over code that you've written when you didn't have a style guide to adhere to. Everyone has their own style because of the way they learned to code. 
</blockquote>
<p>
They talk about how everyone has their own personal "style" to their code and how, when working with a team, everyone needs to communicate and make sure their styles match. They also make a few recommendations for your code like leaving "clues" (comments) and making errors easier to spot. There's also a few links to tools that can help keep your code standardized including <a href="http://csslint.net/">CSS Lint</a> and the <a href="http://eclipseone.wordpress.com/2009/12/13/automatically-format-and-cleanup-code-every-time-you-save/">Eclipse code formatter</a>. PHP, of course, has its own - <a href="http://pear.php.net/package/PHP_CodeSniffer">PHP_CodeSniffer</a> with its own rules.
</p>]]></description>
      <pubDate>Fri, 26 Oct 2012 09:41:32 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Reddit.com: PHP and Continuous Integration]]></title>
      <guid>http://www.phpdeveloper.org/news/18532</guid>
      <link>http://www.phpdeveloper.org/news/18532</link>
      <description><![CDATA[<p>
On Reddit.com there's <a href="http://www.reddit.com/r/PHP/comments/10kfku/php_and_continuous_integration/">a recent post</a> answering a question asked about PHP and continuous integration during a project's development.
</p>
<blockquote>
Does anyone have experience with PHP and Continuous Integration? If so, what tools and / or platforms did you use?
</blockquote>
<p>Suggestions in the comments include:</p>
<ul>
<lI><a href="http://codeception.com/">Codeception</a> for unit testing
<li>the Jenkins <a href="http://jenkins-php.org/">PHP template</a>
<li>Atlassian <a href="http://www.atlassian.com/software/bamboo/overview">Bamboo</a>
<li><a href="http://book.cakephp.org/2.0/en/development/testing.html#integration-with-jenkins">Jenkins</a>
<li><a href="http://travis-ci.org/">Travis-CI</a> (more for open source projects)
</ul>]]></description>
      <pubDate>Fri, 28 Sep 2012 10:23:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Matt Frost's Blog: Prevent Overcomplication]]></title>
      <guid>http://www.phpdeveloper.org/news/18193</guid>
      <link>http://www.phpdeveloper.org/news/18193</link>
      <description><![CDATA[<p>
<i>Matt Frost</i> has <a href="http://shortwhitebaldguy.com/blog/2012/07/prevent-overcomplication">a new post</a> to his blog talking about reducing complexity and preventing overcomplication in your code and application structure.
</p>
<blockquote>
We've all come across code that's written so craftily that it takes us some time to figure out what's actually going on in that block of code.  We've never written things like that ourselves of course....seriously though, if you're collaborating, not doing things in the simplest terms will create an issue when other people start to look at your code.  There is something about us; when we have an opportunity to show off how smart we are; we really try to go for it.  The point is that it's not helping anyone and crafty code !== good code.
</blockquote>
<p>
He makes a few recommendations about how to keep things simple in the various aspects of your development:
</p>
<ul>
<li>Know your tools
<li>Know what you're doing
<li>Check your smells
<li>Ask "what value does this add?"
</ul>
<blockquote>
By simplifying things, you give others a chance to look at what you are doing and help you understand what you did right and what you can do to improve that section. 
</blockquote>]]></description>
      <pubDate>Fri, 06 Jul 2012 12:56:13 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Debugging Your Magento E-Commerce Applications in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18002</guid>
      <link>http://www.phpdeveloper.org/news/18002</link>
      <description><![CDATA[<p>
On PHPBuilder.com there's a recent post looking at <a href="http://www.phpbuilder.com/articles/application-architecture/transactions/debugging-your-magento-e-commerce-applications-in-php.html">debugging Magento applications</a> with some of the built-in tools the platform makes available.
</p>
<blockquote>
Magento is the world's most popular open source e-commerce platform, relied upon by countless Fortune 500 and small business alike for selling goods and services of all types. [...] But with Magento's considerable power comes a great deal of complexity [but] it can be incredibly difficult to even identify the origin of an error let alone resolve it. You can however dramatically improve your productivity as a Magento developer by taking advantage of a few key debugging features.
</blockquote>
<p>
They recommend using four tools built into the platform - the developer mode, logging, template path hints and viewing the raw SQL queries. They also recommend using a few other tools like <a href="http://getfirebug.com/">FireBug</a> and the features of <a href="http://www.eclipse.org/projects/project.php?id=tools.pdt">Eclipse</a> to help with code formatting and completion.
</p>]]></description>
      <pubDate>Thu, 24 May 2012 11:11:59 -0500</pubDate>
    </item>
  </channel>
</rss>
