<?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, 12 Feb 2012 16:03:26 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Developer Drive: Building a PHP Ad Tracker: Data Object Design and Coding]]></title>
      <guid>http://www.phpdeveloper.org/news/17518</guid>
      <link>http://www.phpdeveloper.org/news/17518</link>
      <description><![CDATA[<p>
Continuing on from <a href="http://phpdeveloper.org/news/17400">the first part</a> of their tutorial series about creating a simple ad tracker for your web application, Developer Drive is back with <a href="http://www.developerdrive.com/2012/02/php-ad-tracker-part-ii-data-object-design/">part two</a>, a more in-depth look at the actual object design and code.
</p>
<blockquote>
In our last PHP Ad Tracker lesson, we constructed the database tables for our ad banner application. Now we are ready to construct the data object that will hold the variables and functions that will display, add, edit and delete the data in those tables.
</blockquote>
<p>
They cover each of the variables they'll be using with a summary of what they're used for as well as the various functions to be defined and what they'll return. Following this, they get into the actual development - creating an "ads" class and defining the methods to get the current ad count, get the number of clients and pull the actual client/ad data.
</p>]]></description>
      <pubDate>Wed, 08 Feb 2012 12:57:54 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Hartjes' Blog: Better Remote Code Development]]></title>
      <guid>http://www.phpdeveloper.org/news/17359</guid>
      <link>http://www.phpdeveloper.org/news/17359</link>
      <description><![CDATA[<p>
<i>Chris Hartjes</i> is <a href="http://www.littlehart.net/atthekeyboard/2012/01/05/better-remote-code-development/">asking for suggestions</a> to help solve a common problem for developers (remote or otherwise) that have to develop in a non-local setup: a better method for remote code development.
</p>
<blockquote>
I've been playing around with <a href="http://www.sublimetext.com/">Sublime Text</a> (because of the awesome vim bindings) and was thinking about why do I always have to be logged into the remote server to do my work. Normally I connect using SSH, then attach to my <a href="http://tmux.sourceforge.net/">tmux</a> session and then fire up vim. This is okay but it lacks a certain elegance in it's approach. [...] What I'm chafing against is having to deal with multiple environments all the time to get my work done.
</blockquote>
<p>
His ultimate goal is to be able to update and commit code without having to be logged into the remote server - essentially to replicate the local development experience regardless of the underlying technology. Have a suggestion or a method that's currently working for you? <a href="http://www.littlehart.net/atthekeyboard/2012/01/05/better-remote-code-development/#comments">Leave him a comment</a>!
</p>]]></description>
      <pubDate>Fri, 06 Jan 2012 11:02:55 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Rob Allen's Blog: Sublime Text 2 Snippet for PHP getter and setter generation]]></title>
      <guid>http://www.phpdeveloper.org/news/17336</guid>
      <link>http://www.phpdeveloper.org/news/17336</link>
      <description><![CDATA[<p>
In a quick new post to his blog, <i>Rob Allen</i> has <a href="http://akrabat.com/software/sublime-text-2-snippet-for-php-getter-and-setter-generation/">shared a snippet</a> for the Sublime Text 2 editor to make creating getters and setters for your class simpler (dynamically too).
</p>
<blockquote>
As with a lot of editors, Sublime Text supports snippets which are essentially text expansions of a short phrase into more text. I needed to create a few getXxx() and setXxx() methods for some properties of a class and decided that the easiest way to do this would be with a snippet.
</blockquote>
<p>
Included in the post is the code you'll need to put into the snippet - a simple find (regular expression based) looks at the currently selected variable and expands out the getter and setter for it. For more information on the Sublime Text 2 editor, see <a href="http://www.sublimetext.com/">the product's website</a>.
</p>]]></description>
      <pubDate>Tue, 03 Jan 2012 09:54:23 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Volker Dusch's Blog: Textual code coverage information for PHPUnit]]></title>
      <guid>http://www.phpdeveloper.org/news/17173</guid>
      <link>http://www.phpdeveloper.org/news/17173</link>
      <description><![CDATA[<p>
In <a href="http://edorian.posterous.com/textual-code-coverage-information-for-phpunit">a new post</a> to his blog <i>Volker Dusch</i> points out a new feature in a recent release of <a href="http://phpunit.de">PHPUnit</a>, the popular unit testing framework for PHP - textual code coverage details.
</p>
<blockquote>
Three weeks ago PHPUnit 3.6 was released and it has a little new feature you might have missed until now. PHPUnit can now show you code coverage information on the command line.
</blockquote>
<p>
Options for the report output include: colorizing, writing the output to a file, including a project summary, namespace separation and package (using the @package phpdoc tag) information. He includes a use case he's found for it - small projects where you can cover the whole codebase quickly (with a "watch" command example filtering based on a certain class).
</p>]]></description>
      <pubDate>Fri, 25 Nov 2011 16:11:41 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: PHP Master: Writing Cutting-Edge Code]]></title>
      <guid>http://www.phpdeveloper.org/news/17118</guid>
      <link>http://www.phpdeveloper.org/news/17118</link>
      <description><![CDATA[<p>
On PHPMaster.com today (disclaimer: PHPMaster is a SitePoint website) <i>Timothy Boronczyk</i> has <a href="http://phpmaster.com/php-master-writing-cutting-edge-code/">posted a review</a> of SitePoint's latest offering for PHP developers - <a href="http://www.sitepoint.com/books/phppro1/">Writing Cutting-Edge Code</a> (by <i>Lorna Mitchell</i>, <i>Davey Shafik</i> and <i>Matthew Turland</i>).
</p>
<blockquote>
The book was written explicitly to help you becoming a better PHP programmer and is totally awesome. It not only covers advanced PHP coding topics such as object-oriented programming and design patterns, but also periphery topics that are just as important, such as security, performance profiling, and deployment. If you're ready to hang up your novice hat for good and become a professional-level PHP developer, this book is for you.
</blockquote>
<p>
He goes through and highlights some of the content in the book, chapters covering relational databases, web services, security topics, caching, automated testing, PEAR/PECL....just to name a few. 
</p>
<blockquote>
Using the <a href="http://slashdot.org/faq/bookreviews.shtml">Slashdot scale of book ratings</a>, where 1 is fit for lining cages and 10 is destined to be a class, I give PHP Master: Write Cutting-Edge Code a very solid 8.5. The content will grow with you and the book is not something you'll read in a weekend and then donate to the library because you have no need for it.
</blockquote>]]></description>
      <pubDate>Fri, 11 Nov 2011 09:04:34 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Code Templates, AutoHotKey, and Ditto: Speeding Up Development]]></title>
      <guid>http://www.phpdeveloper.org/news/17094</guid>
      <link>http://www.phpdeveloper.org/news/17094</link>
      <description><![CDATA[<p>
On PHPMaster.com today they share a list of <a href="http://phpmaster.com/code-templates-autohotkey-and-ditto/">helpful tools and tricks</a> that you can apply not only to your PHP development, but programming in general. They highlight code templates, using hotkeys and <a href="http://ditto-cp.sourceforge.net/">Ditto</a>.
</p>
<blockquote>
There are also other helpful pieces of software such as libraries, code snippets, and third party applications. In this article I'll show you how I use a feature built into NetBeans along with two other applications to increase my productivity when programming on Windows. These tips and techniques offer a different way of thinking about things which should be helpful to any developer, regardless of his skill level.
</blockquote>
<p>
They start with a look at the Code Templates available in NetBeans (other IDEs/editors have a similar feature) to provide an easier starting place for your code, a tool called <a href="http://www.autohotkey.com/download">AutoHotKey</a> that lets you define custom hotkey shortcuts and <a href="http://ditto-cp.sourceforge.net/">Ditto</a>, a clipboard manager that lets you manage your copy/pasting better than the single-shot functionality Windows normally has.
</p>]]></description>
      <pubDate>Mon, 07 Nov 2011 11:13:20 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Henri Bergius' Blog: Composer Solves The PHP Code-Sharing Problem]]></title>
      <guid>http://www.phpdeveloper.org/news/17077</guid>
      <link>http://www.phpdeveloper.org/news/17077</link>
      <description><![CDATA[<p>
<i>Henri Bergius</i> has <a href="http://bergie.iki.fi/blog/composer_solves_the_php_code-sharing_problem/">a new post to his blog</a> today about a tool that could help make code reuse across PHP applications a much simpler process. The <a href="http://packagist.org/about-composer">Composer</a> tool (and <a href="http://packagist.org/">Packagist</a>) make setting up packages and dependencies easy.
</p>
<blockquote>
In PHP we've had <a href="http://bergie.iki.fi/blog/php-finally_getting_an_ecosystem/">a lousy culture</a> of code-sharing. Because depending on code from others as been tricky, every major PHP application or framework has practically had to reimplement the whole world. Only some tools, like <a href="https://github.com/sebastianbergmann/phpunit/">PHPUnit</a>, have managed to break over this barrier and become de-facto standards across project boundaries. But for the rest: just write it yourself. But now <a href="http://packagist.org/about-composer">Composer</a>, and its repository counterpart <a href="http://packagist.org/">Packagist</a>, promise to change all that. And obviously new conventions like PHP's <a href="http://www.php.net/manual/en/language.namespaces.rationale.php">namespacing support</a> and the <a href="https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md">PSR-0</a> standard autoloader help.
</blockquote>
<p>
Making a package is as simple as setting up a JSON-based configuration file that names dependencies and package metadata (like name, type, etc). Composer generates an autoloader of its own to handle the loading of your needs based on the dependencies listed as a part of the package. If you'd like more information about Composer or to get the latest version and try it yourself, check out <a href="https://github.com/composer/composer">the project's github repository</a>.
</p>]]></description>
      <pubDate>Wed, 02 Nov 2011 16:28:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[XpertDeveloper.com: Abstract in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17055</guid>
      <link>http://www.phpdeveloper.org/news/17055</link>
      <description><![CDATA[<p>
On the XpertDeveloper.com site today there's a new tutorial talking about something that can not only help the structure of your application but can make things more reusable in the end - <a href="http://www.xpertdeveloper.com/2011/10/abstract-in-php/">abstract classes</a>.
</p>
<blockquote>
For Abstact keyword we can say that, abstract is type of the class and class which we can't create a object of it. Surprised???? [...] Abstract class can be used some what like an interface in PHP. So basically we can implement class using abstract. We can't extend more than one abstract class while we can implement more than one interface.
</blockquote>
<p>
They introduce you to the creation of an abstract class and show how to set up some abstract methods inside. These methods are required to be defined as a part of the extension in your class. One of the benefits they don't mention of abstract classes over interfaces is the ability to have methods in the abstract that are actual code, not just definitions of the structure (that's more of what <a href="http://us.php.net/interfaces">interfaces</a> are for).
</p>]]></description>
      <pubDate>Fri, 28 Oct 2011 09:55:07 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[SitePoint Blog: Book Release - "PHP Master: Write Cutting-Edge PHP Code"]]></title>
      <guid>http://www.phpdeveloper.org/news/17025</guid>
      <link>http://www.phpdeveloper.org/news/17025</link>
      <description><![CDATA[<p>
As is mentioned in <a href="http://www.sitepoint.com/staying-on-the-cutting-edge-of-php-just-got-easier/">this new post</a> to the SitePoint blogs, a new book has been released (by SitePoint press, naturally) about "writing cutting-edge PHP code" by a few well known authors in the PHP community - <a href="http://lornajane.net">Lorna Mitchell</a>, <a href="http://daveyshafik.com">Davey Shafik</a> and <a href="http://matthewturland.com/">Matthew Turland</a>.
</p>
<blockquote>
Savvy PHP web developers can now keep ahead of the game and ensure that their PHP code is safe, secure, and well-structured for the future with the latest release from SitePoint: "PHP Master: Write Cutting-edge Code"
by Lorna Mitchell, Davey Shafik, and Matthew Turland.
</blockquote>
<p>
<a href="http://www.sitepoint.com/books/phppro1/">The book</a> covers a <a href="http://www.sitepoint.com/books/phppro1/toc.php">wide range of topics</a> (somewhat replacing SitePoint's usual "anthology" type of book) including:
</p>
<ul>
<li>An introduction to OOP 
<li>Working with databases
<li>Creating and working with APIs
<li>Design patterns
<li>Security
<li>Automated testing
</ul>
<p>
As part of a special offer, you can pick up your print+ebook bundle for the price of just the book, about $40 USD. If you'd like a sample before purchasing, they've posted <a href="http://www.sitepoint.com/books/phppro1/samplechapters.php?">three sample chapters</a>.
</p>]]></description>
      <pubDate>Fri, 21 Oct 2011 09:58:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: The Best Way to Learn PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16998</guid>
      <link>http://www.phpdeveloper.org/news/16998</link>
      <description><![CDATA[<p>
On NetTuts.com today there a new article with what they think is the <a href="http://net.tutsplus.com/tutorials/php/the-best-way-to-learn-php/">best way to learn PHP</a> in a list of thirteen different "assignments".
</p>
<blockquote>
Learning something from scratch is almost always an arduous affair - you simply have no idea as to where to start, or not to start, to kick things off. I loathed learning about the idiosyncrasies of C++'s syntax when all I wanted to learn were some darn programming concepts. As I'm sure you can agree, this is a less than ideal situation. [...] Today, we're going to figure out the best way to learn PHP.
</blockquote>
<p>Among their list of "assignments" are things like:</p>
<ul>
<li>Disregard the Naysayers
<li>Read a Few, Good Books
<li>Create Something Simple
<li>Try out a Lean, Lightweight Framework
<li>Build Something Awesome
<li>Get Involved and Be Up to Date
</ul>
<p>
There's also some <a href="http://net.tutsplus.com/tutorials/php/the-best-way-to-learn-php/#comments">good comments</a> with suggestions of other frameworks to learn, things to try out and a few comments that put an emphasis on learning the language before diving directly into a framework.
</p>]]></description>
      <pubDate>Mon, 17 Oct 2011 09:08:55 -0500</pubDate>
    </item>
  </channel>
</rss>

