<?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>Sat, 18 May 2013 11:28:04 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[ZendCon 2006 Notes: Best Practices for PHP Development]]></title>
      <guid>http://www.phpdeveloper.org/news/6606</guid>
      <link>http://www.phpdeveloper.org/news/6606</link>
      <description><![CDATA[<br/> Matthew Weier O'Phinney & Mike Naberezny, did a great job on this session. The talk went very smoothly, each of the speakers traded off on presenting the various sections.<br/> <br/> The session also dealt with other collaboration topics (commincation using IM, wiki etc) however I with the PHP/Development issues.<br/><br/> <p class="MsoNormal" style="FONT-WEIGHT:bold">  Source Documentation </p> <ul>  <li>  PHPDoc is the defacto documentation standard, it can be parsed by PHPDocumentor and Doxygen<br/></li>  <li>  Use @category and  @package to manage your documentation</li>  <li>  Using PHPDoc allows all developers to immediately understand your code</li> </ul> <break /><br/> <span style="FONT-WEIGHT:bold">Unit Testing</span><br/> <ul>  <li>  Focusing on PHPUnit</li>  <li>  Test religiously</li>  <li>  Without tests, code is fragile and will regress - there is nothing to tell you when you break your code.</li>  <li>  You are not wasting time by creating tests, you're wasting time by peppering your code with var_dump() and trying to debug code manually.</li>  <li>  <span lang="EN-US" style="">Learning to write good object oriented code that is testable takes practice and discipline. Learn to design for usability.<o:p></o:p></span></li>  <li>  <span lang="EN-US" style="">Test-First methodology allows the tests to become the specification of code you are writing.<o:p></o:p></span></li>  <li>  <span lang="EN-US" style="">Using Classes is not Object Oriented Design</span></li> </ul> <br/><break /> <span style="FONT-WEIGHT:bold">Source Control</span><br style="FONT-WEIGHT:bold"/> <ul>  <li>  Source control was on the benefits of using SVN to manage your code.</li>  <li>  Learn to use tagging and branching instead of committing everything to HEAD<br/></li>  <li>  <span lang="EN-US" style="">Trac is cool (I caught up on emails during this section - great wifi)<br/>  </span></li> </ul> <br/> <span style="FONT-WEIGHT:bold">Deployment</span><br/> <ul>  <li>  Never edit code on the server</li>  <li>  Check out tagged branches from your svc software</li>  <li>  Deploy to a staging server on your production server, test first then modify the symlink.</li>  <li>  Write acceptance and integration tests: http://manuals.rubyonrails.com/read/book/17)</li>  <li>  Monitor Health of Servers: http://www.plope.com/software/supervisor/</li>  <li>  Store schema of your database by committing the schema into your svc server - suggestion: http://www.mysqldiff.org/ and pre-commit hooks</li> </ul>]]></description>
      <pubDate>Mon, 30 Oct 2006 15:26:55 -0600</pubDate>
    </item>
  </channel>
</rss>
