<?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>Wed, 23 May 2012 05:38:29 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Fabien Potencier's Blog: Sami: Yet another PHP API documentation generator]]></title>
      <guid>http://www.phpdeveloper.org/news/17959</guid>
      <link>http://www.phpdeveloper.org/news/17959</link>
      <description><![CDATA[<p>
<i>Fabien Potencier</i> has <a href="http://fabien.potencier.org/article/63/sami-yet-another-php-api-documentation-generator">released a new tool</a> to the open source community today - a documentation generation tool called <a href="https://github.com/fabpot/Sami">Sami</a>.
</p>
<blockquote>
Nowadays, <a href="http://phpdoc.org/">phpDocumentor</a> version 2 is probably the best option out there as it has a good architecture, it works fine, it is extensible, and quite a few big PHP projects is already using it. And that's fine. I don't want to compete with it, I don't want to replace it, I'm just open sourcing some code used by <a href="http://api.symfony.com/">Symfony</a>, <a href="http://silex.sensiolabs.org/api/index.html">Twig</a>, and <a href="http://silex.sensiolabs.org/api/index.html">Silex</a> because I'm not comfortable with closed-source software. And to be totally honest and transparent, I have not released the code before because it was not "good enough".
</blockquote>
<p>
He gives an example of how to install and use <a href="https://github.com/fabpot/Sami">Sami</a> - configuring the directories to parse and setting up a custom theme for the resulting generated documentation (using regular CSS and HTML definitions). 
</p>]]></description>
      <pubDate>Tue, 15 May 2012 09:18:49 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPClasses.org: Using DaDaBIK to create a PHP CRUD Database Front-End without coding]]></title>
      <guid>http://www.phpdeveloper.org/news/17939</guid>
      <link>http://www.phpdeveloper.org/news/17939</link>
      <description><![CDATA[<p>
On the PHPClasses.org blog there's a recent post about using the <a href="http://www.dadabik.org/">DaDaBIK</a> project to <a href="http://www.phpclasses.org/blog/post/184-Using-DaDaBIK-to-create-a-PHP-CRUD-Database-FrontEnd-without-coding.html">automatically generate a database CRUD frontend</a> without having to code any of it by hand.
</p>
<blockquote>
Writing CRUD database front-ends and simple database applications is a very common task that almost all PHP developers need to implement. It is usually a simple job to accomplish, but is also time consuming, boring and error-prone to implement. Software developer's tend to avoid time wasting and repetitive tasks in favor of more challenging tasks. This lead to the development of applications with the goal to automate front-end development. <a href="http://www.dadabik.org/">DaDaBIK</a> is one of the precursors of this kind of applications for automated creation of PHP front-ends. Released initially in the year 2000 by myself, Eugenio Tacchini, the project continues to be actively developed until today.
</blockquote>
<p>
Included in the post are <a href="http://files.phpclasses.org/files/blog/file/DaDaBIK_screenshot_1_-_400.png">a</a> <a href="http://files.phpclasses.org/files/blog/file/DaDaBIK_screenshot_2_-_400.png">few</a> <a href="http://files.phpclasses.org/files/blog/file/DaDaBIK_screenshot_3_-_400.png">screenshots</a> of the <a href="http://files.phpclasses.org/files/blog/file/DaDaBIK_screenshot_4_-_400.png">interface</a> and <a href="http://www.youtube.com/watch?v=uPmXoep91Vk&">a screencast</a> showing it in use. You can find out more about the project on the <a href="http://www.dadabik.org/">DaDaBIK website</a>.
</p>]]></description>
      <pubDate>Thu, 10 May 2012 09:16:23 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Code2Learn.com: Generating CSV file using CodeIgniter Framework]]></title>
      <guid>http://www.phpdeveloper.org/news/17841</guid>
      <link>http://www.phpdeveloper.org/news/17841</link>
      <description><![CDATA[<p>
The Code2Learn site has posted another in their CodeIgniter "series" about producing various kinds of output from an application based on this framework. In <a href="http://www.code2learn.com/2012/03/generating-csv-file-using-codeigniter.html">this new article</a> <i>Farhan Khwaja</i> shows how to output a CSV-formatted file.
</p>
<blockquote>
I have already written posts on <a href="http://www.code2learn.com/2012/02/generating-pdf-files-from-database.html">how to generate pdf files using CodeIgniter Framework</a> and also on <a href="http://www.code2learn.com/2012/03/generating-tabulated-pdf-file-from.html">how to generate tabulated pdf file using CodeIgniter Framework</a>.  This post will help you to generate a CSV file using CodeIgniter. The data for the CSV File will be taken from the MySQL Database and will be put into the CSV File.
</blockquote>
<p>
He includes the source for a basic "Generate" controller class that uses a custom "CSV_Helper" to do the work. It has two methods - one to transform array data and another to take the database result object and extract each record. 
</p>]]></description>
      <pubDate>Thu, 19 Apr 2012 11:45:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Code2Learn.com: Generating PDF files from Database using CodeIgniter]]></title>
      <guid>http://www.phpdeveloper.org/news/17606</guid>
      <link>http://www.phpdeveloper.org/news/17606</link>
      <description><![CDATA[<p>
On the Code2Learn blog there's a recent tutorial about <a href="http://www.code2learn.com/2012/02/generating-pdf-files-from-database.html">creating PDFs from CodeIgniter</a> using the <a href="http://www.ros.co.nz/pdf/">R&OS PDF class</a> (not bundled with the framework, but easy to integrate).
</p>
<blockquote>
As a programmer I find PDF files very helpful to me when generating reports and getting them printed. We will be using <a href="http://www.ros.co.nz/pdf/">R&OS pdf class</a>. I find this to be the best one because all others libraries I came across didn't offer me a good control over the making of the file and also the process of making i.e the code required for this library is bit tricky but it helped me improve my coding. 
</blockquote>
<p>
Code is included to create a simple PDF helper class that creates a new "cezpdf" object and add some basic things like titles, page numbers and some basic footer text. A simple controller is included that pulls the information from a database table (in their case a record of logins) and pushes this data into the PDF as lines of text.
</p>]]></description>
      <pubDate>Wed, 29 Feb 2012 12:07:33 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Ben Selby's Blog: DocBlox Plugin For Sublime Text 2]]></title>
      <guid>http://www.phpdeveloper.org/news/17505</guid>
      <link>http://www.phpdeveloper.org/news/17505</link>
      <description><![CDATA[<p>
<i>Ben Selby</i> has <a href="http://www.soulbroken.co.uk/blog/2012/02/docblox-plugin-for-sublime-text-2/">released a Sublime Text 2 plugin</a> for the popular PHP-based documentation generation project <a href="http://www.docblox-project.org/">DocBlox</a>.
</p>
<blockquote>
It seems that the editor of the moment is Sublime Text 2 and sadly I have to tip my hat to Gary Rockett for showing it off to me one day.. Since that day, I've been a 100% convert. [...] So, I decided to peak into the <a href="https://github.com/stuartherbert/sublime-phpunit">PHPUnit [plugin from Stuart Herbert]</a> to see if I could create a <a href="http://www.docblox-project.org/">DocBlox</a> Plugin. It turns out you have to write Plugins in Python, which is interesting, since I know very little python. There seemed to be enough code there to get me going, so I now have a working <a href="https://github.com/benmatselby/sublime-docblox">DocBlox Plugin</a>.
</blockquote>
<p>
The result is a plugin that, once installed gives you a new context menu option to "Generate documentation" for the selected file. The console shows the progress of the build. You can get the plugin from <a href="http://wbond.net/sublime_packages/package_control">Package Control</a> or by <a href="https://github.com/benmatselby/sublime-docblox">grabbing it from github directly</a>.
</p>]]></description>
      <pubDate>Mon, 06 Feb 2012 15:39:34 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Build an Admin Panel with the Fuel PHP Framework]]></title>
      <guid>http://www.phpdeveloper.org/news/17249</guid>
      <link>http://www.phpdeveloper.org/news/17249</link>
      <description><![CDATA[<p>
<i>Phil Sturgeon</i> (an expert in all things related to the <a href="http://fuelphp.com">Fuel PHP</a> framework) has <a href="http://net.tutsplus.com/tutorials/php/build-an-admin-panel-with-the-fuel-php-framework/">written up a tutorial for NetTuts.com</a> about creating a basic admin panel for your application based on the framework. This is the second part of a series looking at Fuel, building on the topics from the <a href="http://net.tutsplus.com/tutorials/php/getting-started-with-the-fuel-php-framework/">first</a>.
</p>
<blockquote>
In the <a href="http://net.tutsplus.com/tutorials/php/getting-started-with-the-fuel-php-framework/">first</a> part of this series, we took a look at the basics of the FuelPHP framework. In this second-part, we'll be stepping it up a gear and move onto some more advanced topics! We'll be creating an admin panel for our application, cover the common uses of the ORM and use the Authentication package to restrict access.
</blockquote>
<p>
He walks you through setting up Oil (the command-line tool that comes bundled with Fuel) and using it to create a new application. There's a few steps of configuration to connect to a database and setting up a few access groups (like "Banned", "Guests" and "Administrators"). Oil is used again to create users in the database and to auto-generate a lot of the controller/view code you'll need for the admin tool. He then gets into the more technical parts - updating the current code to be able to do things like using the ORM to fetch database results and being able to add comments to posts.
</p>]]></description>
      <pubDate>Tue, 13 Dec 2011 10:09:47 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Philip Norton's Blog: PHPUnit Skeleton Classes]]></title>
      <guid>http://www.phpdeveloper.org/news/16626</guid>
      <link>http://www.phpdeveloper.org/news/16626</link>
      <description><![CDATA[<p>
In <a href="http://www.hashbangcode.com/blog/phpunit-skeleton-classes-588.html">this new post</a> to his blog, <i>Philip Norton</i> reminds you about a handy feature of <a href="http://phpunit.de">PHPUnit</a>, the popular PHP unit testing tool, that can make generating tests for your application simpler - the skeleton class generator.
</p>
<blockquote>
If you create classes in PHP then you should be unit testing them as much as you can. Setting up unit testing classes for your code can be time consuming and involve a bunch of copying and pasting. Thankfully, PHPUnit comes with a couple of helper functions that allow the creation of unit testing classes automatically, which can save a bit of copying and pasting.
</blockquote>
<p>
He includes an example of a class named "Spider" and shows both the contents of the class and the resulting test that comes from running "phpunit  --skeleton-test" on it. The resulting test has methods for each method in your class and marks them all as incomplete. As <i>Philip</i> notes, this is a good start but should never be relied upon as a test to leave as-is.
</p>]]></description>
      <pubDate>Mon, 25 Jul 2011 10:34:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: PHP UML generation from a live object graph]]></title>
      <guid>http://www.phpdeveloper.org/news/16326</guid>
      <link>http://www.phpdeveloper.org/news/16326</link>
      <description><![CDATA[<p>
On the PHP On Windows section of the DZone.com site <i>Giorgio Sironi</i> has a new post looking at the process (and script he's created) to <a href="http://css.dzone.com/articles/php-uml-generation-live-object">create a UML diagram</a> with PHP from a project's current class structure.
</p>
<blockquote>
Sometimes you need to share a design with your colleagues. You can walk him through the code, and explain which classes and interfaces you created, but there are higher abstracted models that you can show to him to make him grasp the picture quickly. One of these tools is UML, and in particular class diagrams.
</blockquote>
<p>
<a href="https://github.com/giorgiosironi/pug">His script</a> creates a UML diagram from a PHP object graph, a sort of "reverse engineering" of the current object's hierarchy and relationships. It creates definitions that <a href="http://yuml.me/">Yuml.me</a> can use to generate the image and does some handy things like following the path down N levels until it hits "the bottom" and the ability to ignore certain namespaces (like "Zend_" or "Doctrine_") to help limit things down to just your application. He includes a sample set of tests to show it in action as well as <a href="http://yuml.me/diagram/scruffy;dir:TB;/class/%5BPHPUnit_Framework_Constraint_IsEqual%5D-%3E%5BstdClass%5D,%20%5BPHPUnit_Framework_Constraint%5D%5E-%5BPHPUnit_Framework_Constraint_IsEqual%5D.png">a resulting UML diagram</a> generated from the PHPUnit structure.
</p>]]></description>
      <pubDate>Wed, 11 May 2011 10:19:47 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Dave Marshall' Blog: Asynchronous cache priming with progress bars via Gearman, Memcache and Dojo]]></title>
      <guid>http://www.phpdeveloper.org/news/16141</guid>
      <link>http://www.phpdeveloper.org/news/16141</link>
      <description><![CDATA[<p>
<i>Dave Marshall</i> has written up a new post showing how he's used memcache, Gearman and Dojo to create an <a href="http://www.davedevelopment.co.uk/2011/04/04/asynchronous-cache-priming-with-progress-bars-via-gearman-memcache-and-dojo/">asynchronous progress bar</a> he uses when generating large reports.
</p>
<blockquote>
I have a (highly optimised) report that takes way too long to generate, up to around 30 seconds. [There's] too many variables to prime caches for every possible combination [and] personally, I don't think the browsers inbuilt progress bar is enough feedback for todays web users.
</blockquote>
<p>
He generates the data into <a href="http://memcached.org/">memcache</a> when the user requests it and uses the Gearman worker processes to handle requests for data that doesn't yet exist. The progress bar is a part of <a href="http://dojotoolkit.org/">Dojo</a> and uses the <a href="http://docs.dojocampus.org/dijit/ProgressBar">dijit.ProgressBar</a> widget to keep checking the progress of the build. This way the user can even leave the page and come back if the process takes too long with no threat to the generating report. You can find all of his code he's used to make it happen <a href="https://github.com/davedevelopment/async-demo">on his github account</a>.
</p>]]></description>
      <pubDate>Mon, 04 Apr 2011 10:18:20 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Kore Nordmann's Blog: Generating XML schemas from XML data]]></title>
      <guid>http://www.phpdeveloper.org/news/16117</guid>
      <link>http://www.phpdeveloper.org/news/16117</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Kore Nordmann</i> <a href="http://kore-nordmann.de/blog/0104_generating_xml_schemas_from_xml.html">talks about a tool he's developed</a> that will "learn" XML schemas based on a document it's given. The tool, the <a href="https://github.com/kore/XML-Schema-learner">XML-schema-learner</a>, makes it as simple as a one-line command to generate the DTD file and transform it into a schema.
</p>
<blockquote>
You can get the "<a href="https://github.com/kore/XML-Schema-learner">XML schema learner</a>" from my Github account: <a href="https://github.com/kore/XML-Schema-learner">https://github.com/kore/XML-Schema-learner</a>. Just clone it, and you can run the tests, or use the learn command to infer XML schemas from XML data.
</blockquote>
<p>
He includes an example XML definition and the resulting DTD that the tool generates from it, defining each of the elements and attributes each can have. The tool can then take this DTD file and generate an XSD file, creating complex and simple types that match the original data.
</p>]]></description>
      <pubDate>Tue, 29 Mar 2011 12:16:05 -0500</pubDate>
    </item>
  </channel>
</rss>

