<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
>
    <channel rdf:about="http://pear.php.net/">
    <link>http://pear.php.net/</link>
    <dc:creator>pear-webmaster@lists.php.net</dc:creator>
    <dc:publisher>pear-webmaster@lists.php.net</dc:publisher>
    <dc:language>en-us</dc:language><items>
<rdf:Seq><rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=548"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=546"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=545"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=542"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=539"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=537"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=535"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=530"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=529"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=528"/>
</rdf:Seq>
</items>

<title>PEPr: Latest proposals with status Finished</title>
<description>The latest PEPr proposals with status Finished</description>
</channel>

<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=548">
 <title>PEPr Proposal [548]: Networking::Net_Gearman</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=548</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Networking::Net_Gearman&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/jstump&quot;&gt;Joe Stump&lt;/a&gt;&amp;nbsp;[&lt;a href=&quot;http://pear.php.net/wishlist.php/jstump&quot;&gt;Wishlist&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Gearman (&lt;a href=&quot;http://www.danga.com/gearman/&quot;&gt;http://www.danga.com/gearman/&lt;/a&gt;) is a system to farm out work to other machines, dispatching function calls to machines that are better suited to do work, to do work in parallel, to load balance lots of function calls, or to call functions between languages.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Net_Gearman is a PHP package that interfaces with Gearman. Net_Gearman is already in production at Yahoo! and Digg doing all sorts of offloaded &amp;quot;near time&amp;quot; processing. The package includes a client class for interfacing with Gearman to submit jobs and a worker class for connecting to Gearman servers to participate in working.
 </content:encoded>
 <dc:date>2008-04-03T23:56:56-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=546">
 <title>PEPr Proposal [546]: HTML::HTML_Entities</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=546</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        HTML::HTML_Entities&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/cbrunet&quot;&gt;Charles Brunet&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
This package allow to convert utf-8 text to html entities and vice-versa. It provides functions similar to php functions &lt;em&gt;html_entity_decode&lt;/em&gt;, &lt;em&gt;htmlentities&lt;/em&gt; and &lt;em&gt;get_html_translation_table&lt;/em&gt;, but it works natively in utf-8, and contains ALL defined HTML entities.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
You have options to use named or numerical entities, and to only use entities compatible with a specific HTML version.
 </content:encoded>
 <dc:date>2008-04-01T15:10:47-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=545">
 <title>PEPr Proposal [545]: Web Services::Services_Yahoo_JP</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=545</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Web Services::Services_Yahoo_JP&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/tetsuya&quot;&gt;Nakase Tetsuya&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Provides access to the Yahoo! JAPAN Web Services.&lt;br /&gt;&lt;br /&gt;
This is a Services_Yahoo's sub package for Japan.&lt;br /&gt;&lt;br /&gt;
Yahoo! JAPAN has some original APIs.&lt;br /&gt;&lt;br /&gt;
At first, provides access to the Auction, Search, News and Morphological Analysis.
 </content:encoded>
 <dc:date>2008-03-23T10:32:09-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=542">
 <title>PEPr Proposal [542]: Encryption::Crypt_MicroID</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=542</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Encryption::Crypt_MicroID&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/kwilms&quot;&gt;Kurt Wilms&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Provides methods needed to generate and verify MicroIDs. All MicroID formats are supported.
 </content:encoded>
 <dc:date>2008-03-12T14:29:02-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=539">
 <title>PEPr Proposal [539]: Networking::Net_Nmap</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=539</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Networking::Net_Nmap&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/lucor&quot;&gt;Luca Corbo&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;A simple wrapper class for the Nmap utility&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Net_Nmap is a simple interface for Nmap, &lt;br /&gt;&lt;br /&gt;
the free and open source utility for network exploration or security auditing.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Net_Nmap can be used to auto discovery hosts and services in your network or simply to parse Nmap XML output.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Net_Nmap was inspired by the perl &lt;a href=&quot;http://search.cpan.org/~apersaud/Nmap-Parser/&quot;&gt;Nmap-Parser&lt;/a&gt; module&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Note: &lt;br /&gt;&lt;br /&gt;
Requires a Nmap installation on your system.&lt;br /&gt;&lt;br /&gt;
Nmap is available from &lt;a href=&quot;http://nmap.org/&quot;&gt;http://nmap.org/&lt;/a&gt;
 </content:encoded>
 <dc:date>2008-03-08T05:04:33-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=537">
 <title>PEPr Proposal [537]: Testing::Testing_DocTest</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=537</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Testing::Testing_DocTest&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/izi&quot;&gt;David Jean Louis&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Testing_DocTest: A Unit Test framework for writing tests in your php code docstrings.&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;toc0&quot;&gt;Introduction&lt;/h1&gt;&lt;br /&gt;
&lt;p&gt;Testing_DocTest allows the developer to write unit tests directly in the &amp;lt;code&amp;gt;&amp;lt;/code&amp;gt; blocs of your PHP functions, classes and class methods.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Testing_DocTest comes with a default runner that will parse all your &amp;lt;code&amp;gt;&amp;lt;/code&amp;gt; blocs and will run the extracted tests, running tests is as simple as:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;$ phpdt /path/to/your/code&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;There are several advantages in using Testing_DocTest:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;it makes unit tests writing funnier, easier and quicker (there's no infrastructure to setup, you just install the package, write your code examples tests and you're done !);&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;it ensures that docstrings are up-to-date by verifying that all examples work as documented;&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;it enforces writing of tutorial documentation, liberally illustrated with input-output examples.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Testing_DocTest was maily inspired by the great python &lt;a href=&quot;http://docs.python.org/lib/module-doctest.html&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;doctest module&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;toc1&quot;&gt;Installation&lt;/h1&gt;&lt;br /&gt;
&lt;p&gt;Just run:&lt;br /&gt;&lt;br /&gt;
$ pear install -f &lt;a href=&quot;http://testing-doctest.googlecode.com/files/Testing_DocTest-0.2.3.tgz&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;http://testing-doctest.googlecode.com/files/Testing_DocTest-0.2.3.tgz&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;And to uninstall:&lt;br /&gt;&lt;br /&gt;
$ pear uninstall Testing_DocTest&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;toc2&quot;&gt;Documentation&lt;/h1&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;&lt;a href=&quot;http://code.google.com/p/testing-doctest/wiki/Documentation&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;User documentation&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;&lt;a href=&quot;http://izimobil.org/Testing_DocTest/&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;API documentation&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;toc3&quot;&gt;Examples&lt;/h1&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;&lt;a href=&quot;http://code.google.com/p/testing-doctest/wiki/SimpleExample&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;A simple example&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;&lt;a href=&quot;http://code.google.com/p/testing-doctest/wiki/AdvancedExample&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;A more advanced example&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;toc4&quot;&gt;Todo list by priority (not exhaustive)&lt;/h1&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;Integration with other test frameworks (phpt, PHPUnit, xUnit...);&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Better error reports for doctest, instead of Parse error in command line code, try to report the file and line where the test fails (in the docstring);&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Ability to manage test suites (with a &amp;quot;suite:&amp;quot; keyword for example);&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Provide some sort of setup/teardown mechanism, but I'm not sure if it's a good idea... After all you can always include() files in doctests;&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Provide a html runner with a bling-bling gui.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;toc5&quot;&gt;&lt;a href=&quot;http://code.google.com/p/testing-doctest&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;Project page at googlecode&lt;/a&gt;&lt;/h1&gt;&lt;br /&gt;

 </content:encoded>
 <dc:date>2008-03-06T11:35:25-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=535">
 <title>PEPr Proposal [535]: PHP::UML</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=535</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        PHP::UML&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/baptiste&quot;&gt;Baptiste Autin&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
PHP_UML is an XMI-based reverse-engineering tool, as well as a metamodel-driven application.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Practically, with PHP_UML, you can feed an UML CASE tool, like Rational Rose or Argouml, with an UML representation of some existing PHP source code. This way you get an immediate overview of an application, with all the usual functions of a software design tool, like class diagrams exportation, refactoring of object-oriented applications, or automatic code generation.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
PHP_UML is three parts :&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
    * It is a &lt;strong&gt;PHP parser&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;
    * It is a &lt;strong&gt;PHP metamodel&lt;/strong&gt;, that provides a set of MOF-oriented classes, as well as a parameterized class, in order to build collections of program elements&lt;br /&gt;&lt;br /&gt;
    * It is an &lt;strong&gt;XMI code generator&lt;/strong&gt; (most UML softwares can import XMI code, this is how you will get the object model of your PHP application into your design tool)&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
You can use all, or any of these three functions. Don't be afraid by the second, it is more straightforward than it sounds.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
What does it generate ?&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
PHP_UML generates a logical view (composed of the packages and classes found), a component view, and a deployment view (through a mapping of the filesystem).&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
What does it parse ?&lt;br /&gt;&lt;br /&gt;
PHP_UML :&lt;br /&gt;&lt;br /&gt;
- Reads your classes, interfaces, inheritances and implementations&lt;br /&gt;&lt;br /&gt;
- Reads your properties, class constants, visibility and static attributes&lt;br /&gt;&lt;br /&gt;
- Reads your functions, with parameters, default values, and types (when stated)&lt;br /&gt;&lt;br /&gt;
- Reads your comments : class docblocks (@package), function docblocks (@param and @return) and file docblocks (@package)&lt;br /&gt;&lt;br /&gt;
- Reads the new PHP instruction &amp;quot;namespace&amp;quot; (simple, non-hierarchical expressions only at this time)&lt;br /&gt;&lt;br /&gt;
- Can bind classes to artifacts (through UML2 manifestations)&lt;br /&gt;&lt;br /&gt;
- Automatically detects data types, through the default values&lt;br /&gt;&lt;br /&gt;
- Generates UML version 1.4, and version 2.1&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
How do I use it ?&lt;br /&gt;&lt;br /&gt;
You just need to run a couple of instructions in a PHP page: you create a PHP_UML object, you specify the location of the directory to parse, which version of UML/XMI you want, et voil&amp;agrave;.
 </content:encoded>
 <dc:date>2008-03-05T10:30:37-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=530">
 <title>PEPr Proposal [530]: File System::File_Manager_System</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=530</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        File System::File_Manager_System&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/jan267&quot;&gt;Jacopo Andrea Nuzzi&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
With this file manager you can simply manage files and directories on you webserver via browser.&lt;br /&gt;&lt;br /&gt;
You can easily upload, create, modify delete, copy and move any type of file&lt;br /&gt;&lt;br /&gt;
You can also manage directories: create, modify and delete all directories.
 </content:encoded>
 <dc:date>2008-02-08T06:48:32-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=529">
 <title>PEPr Proposal [529]: Web Services::Services_Akismet</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=529</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Web Services::Services_Akismet&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/gauthierm&quot;&gt;Michael Gauthier&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;This package provides an object-oriented interface to the Akismet REST API. Akismet is used to detect and to filter spam comments posted on weblogs. Though the use of Akismet is not specific to Wordpress, you will need a &lt;a href=&quot;http://wordpress.com/api-keys/&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;Wordpress API key&lt;/a&gt; to use this package.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Akismet is free for personal use and a license may be purchased for commercial or high-volume applications.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;This package is derived from the miPHP Akismet class written by Bret Kuhns for use in PHP 4. This package requires PHP 5.2.1.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2008-02-03T15:31:18-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=528">
 <title>PEPr Proposal [528]: File System::File_Mogile</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=528</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        File System::File_Mogile&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/sbw&quot;&gt;Steve Williams&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
An interface for accessing MogileFS.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
MogileFS is an open source distributed filesystem.  MogileFS can be configured to provide high capacity, high availability, or a combination of both, as required by various classes of files.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
File_Mogile is derived from code written for Mediawiki by Domas Mituzas and Jens Frank.  That work is used here by permission.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.danga.com/mogilefs/&quot;&gt;http://www.danga.com/mogilefs/&lt;/a&gt;
 </content:encoded>
 <dc:date>2008-01-29T19:16:25-05:00</dc:date>
</item>

</rdf:RDF>