<?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=711"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=710"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=708"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=696"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=695"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=686"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=684"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=680"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=677"/>
<rdf:li rdf:resource="http://pear.php.net/pepr/pepr-proposal-show.php?id=676"/>
</rdf:Seq>
</items>

<title>PEPr: Latest proposals with status Draft</title>
<description>The latest PEPr proposals with status Draft</description>
</channel>

<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=711">
 <title>PEPr Proposal [711]: Web Services::Services_Hatena</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=711</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Web Services::Services_Hatena&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/makoto&quot;&gt;Makoto Tanaka&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;Interface to Hatena's XML-API.&lt;br /&gt;&lt;br /&gt;
feature, follows:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;(1).&lt;br /&gt;&lt;br /&gt;
It provides objects to operate Hatena's Bookmark or Fotolife service.&lt;br /&gt;&lt;br /&gt;
For example, add your URL to social bookmark,&lt;br /&gt;&lt;br /&gt;
 or delete image file from foto service&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;(2).&lt;br /&gt;&lt;br /&gt;
It provides objects to get information from Hatena Web Site.&lt;br /&gt;&lt;br /&gt;
For example, search, number of registrated bookmark,&lt;br /&gt;&lt;br /&gt;
and autolinked keyword.&lt;br /&gt;&lt;br /&gt;
&amp;quot;AutoLink&amp;quot; function is interesting. If your keyword is popular in Hatena,&lt;br /&gt;&lt;br /&gt;
you will get the autolinked keyword string.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;-- example --&lt;br /&gt;&lt;br /&gt;
Before) &lt;br /&gt;&lt;br /&gt;
&amp;quot;I like PHP.&amp;quot;&lt;br /&gt;&lt;br /&gt;
After)&lt;br /&gt;&lt;br /&gt;
&amp;quot;I like &amp;lt;a class=&amp;quot;keyword&amp;quot; target=&amp;quot;_blank&amp;quot; href=&amp;quot;&lt;a href=&quot;http://d.hatena.ne.jp/keyword/PHP&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;http://d.hatena.ne.jp/keyword/PHP&lt;/a&gt;&amp;quot;&amp;gt;PHP&amp;lt;/a&amp;gt;.&amp;quot;&lt;br /&gt;&lt;br /&gt;
--&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;The Hatena's explanation is,&lt;br /&gt;&lt;br /&gt;
please read here :&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://news.php.net/php.pear.dev/41531&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;http://news.php.net/php.pear.dev/41531&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Please give me a lot of opinions,&lt;br /&gt;&lt;br /&gt;
The dynamic atmosphere &lt;a href=&quot;https://ses-help.org.ua/&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;vulkan 777&lt;/a&gt; opens the world of bright casino-games in front of the players, offering a wide selection of slots, roulette, poker and other gambling entertainments. Here everyone can experience luck, plunging into the atmosphere of a real game holiday, where excitement and the possibility of winning are always in the foreground.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2025-02-18T17:47:19-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=710">
 <title>PEPr Proposal [710]: HTML::Template_Savant</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=710</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        HTML::Template_Savant&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/pmjones&quot;&gt;Paul Jones&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;toc0&quot;&gt; HTML_Template_Savant&lt;/h1&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;div id=&quot;toc&quot;&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: -1em;&quot;&gt;&lt;a href=&quot;#toc0&quot;&gt; HTML_Template_Savant&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 0em;&quot;&gt;&lt;a href=&quot;#toc1&quot;&gt;An Overview&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 0em;&quot;&gt;&lt;a href=&quot;#toc2&quot;&gt; Provides&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 0em;&quot;&gt;&lt;a href=&quot;#toc3&quot;&gt; Example&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 1em;&quot;&gt;&lt;a href=&quot;#toc4&quot;&gt; Logic Script&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 1em;&quot;&gt;&lt;a href=&quot;#toc5&quot;&gt; Template Script&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 1em;&quot;&gt;&lt;a href=&quot;#toc6&quot;&gt; Plugins and Filters&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 1em;&quot;&gt;&lt;a href=&quot;#toc7&quot;&gt; Caching&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 0em;&quot;&gt;&lt;a href=&quot;#toc8&quot;&gt; Other Packages&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 1em;&quot;&gt;&lt;a href=&quot;#toc9&quot;&gt; IT, PHPLIB, Sigma&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 1em;&quot;&gt;&lt;a href=&quot;#toc10&quot;&gt; Flexy, Xipe&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 0em;&quot;&gt;&lt;a href=&quot;#toc11&quot;&gt; Other Reasons For Savant&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
	&lt;div style=&quot;margin-left: 0em;&quot;&gt;&lt;a href=&quot;#toc12&quot;&gt; Possible Enhancements&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;toc1&quot;&gt;An Overview&lt;/h2&gt;&lt;br /&gt;
&lt;p&gt;Savant is a powerful but lightweight template system for PHP.  It is primarily for PHP developers, not HTML designers, although anyone with any amount of PHP knowledge can use it.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant  uses PHP itself as its template language so you don't need to learn a new markup system (c.f. comments and explanation from &lt;a href=&quot;http://www.phppatterns.com/index.php/article/articleview/4/1/1/&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;Harry Fuecks&lt;/a&gt; and &lt;a href=&quot;http://www.massassi.com/php/articles/template_engines/&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;Brian Lozier&lt;/a&gt;).  Savant leverages the existing strengths of PHP to create the most effective template system possible.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant is not Xipe-lite, becuase Savant is not a compiling template engine. All compiling template engines have an inherent security risk of requiring a writable directory, as well as making re-distributable templates very difficult to maintain.  Savant does not carry this risk or diffuculty.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Unlike other non-compiling template engines, Savant has no need for complex template parsing logic, and is therefore lightweight, faster than any existing template engine, and has the capability to generate binary files as well as text files.  Savant could be used to generate customized images, for instance.  No HTML_Template_* engine has this kind of power.  In fact, a better top-level category for Savant would be just &amp;quot;Template&amp;quot; (for &amp;quot;Template_Savant&amp;quot;).&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant has an object-oriented system of template plugins and output filters, so it sports almost all of the power and flexibility of Smarty with almost none of the overhead.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;toc2&quot;&gt; Provides&lt;/h2&gt;&lt;br /&gt;
&lt;p&gt;Savant...&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;&lt;strong&gt;assigns&lt;/strong&gt; variable copies (scalar, array, or object) and variable references for parsing through to a PHP-based template script via the methods &lt;tt&gt;assign()&lt;/tt&gt; and &lt;tt&gt;assignRef()&lt;/tt&gt; (there is an &lt;tt&gt;assignObject()&lt;/tt&gt; method specifically for assigning object references)&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;&lt;strong&gt;includes&lt;/strong&gt; then displays or returns the template script output via the &lt;tt&gt;display()&lt;/tt&gt; and &lt;tt&gt;fetch()&lt;/tt&gt; methods&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;provides an object-oriented system of &lt;strong&gt;plugins&lt;/strong&gt; that add &amp;quot;convenience functions&amp;quot; for your display logic using &lt;tt&gt;plugin()&lt;/tt&gt; and &lt;tt&gt;splugin()&lt;/tt&gt; methods&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;provides an object-oriented system of &lt;strong&gt;output filters&lt;/strong&gt; to automatically process the parsed output of the template script via the &lt;tt&gt;setFilter()&lt;/tt&gt; and &lt;tt&gt;mapFilter()&lt;/tt&gt; functions.&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;provides a simple &lt;strong&gt;path management&lt;/strong&gt; system through &lt;tt&gt;addPath()&lt;/tt&gt;, &lt;tt&gt;getPath()&lt;/tt&gt;, and &lt;tt&gt;findTemplate()&lt;/tt&gt; that allows you mix and match locations for plugins, filters, and templates, making it a great foundation for distrbuted and/or theme-aware applications.&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;has &lt;strong&gt;full documentation&lt;/strong&gt; at &lt;a href=&quot;http://phpsavant.com/&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;http://phpsavant.com/&lt;/a&gt; with examples and user comments.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant &lt;strong&gt;does not compile templates&lt;/strong&gt;.  Savant templates are written in plain, natural PHP with regular &lt;tt&gt;&amp;lt;?php ... ?&amp;gt;&lt;/tt&gt; tags, so no compilation or evaluation is necessary; it just &lt;a onclick=&quot;window.open(this.href, '_blank'); return false;&quot; href=&quot;http://php.net/include&quot;&gt;include&lt;/a&gt;s the template code within the Savant object context at display() or fetch() time.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant &lt;strong&gt;does not&lt;/strong&gt; have a built-in caching mechanism.  If you want to cache output, I figure you probably want your application to provide that, not the template subsystem.  Use Cache or Cache_Lite if you want to cache Savant output.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;toc3&quot;&gt; Example&lt;/h2&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 id=&quot;toc4&quot;&gt; Logic Script&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;Here is an example use of Savant.  The following business logic script populates and displays a Savant template (shown below).&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// load the Savant class file&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;require_once &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'Savant.php'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// generate an array of book authors and titles&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$booklist &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= array(&lt;br /&gt;
    array(&lt;br /&gt;
        &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'author' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'Stephen King'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;
        &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'title' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'The Stand'&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;
    array(&lt;br /&gt;
        &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'author' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'Neal Stephenson'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;
        &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'title' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'Cryptonomicon'&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;
    array(&lt;br /&gt;
        &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'author' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'Milton Friedman'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;
        &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'title' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'Free to Choose'&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// generate a list of some other variables&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$varlist &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= array(&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'var1' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'some value'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'var2' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'some other value'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'var3' &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'yet another value'&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// create a title for the page&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$title &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;My Page Title&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// create a Savant object&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$savant &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;amp; new &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Savant&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;();&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// assign values to the template variables&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$savant&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;assign&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'book'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$booklist&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$savant&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;assign&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'title'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$title&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$savant&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;assign&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$varlist&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// display the template with the assigned values&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$savant&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;display&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'example.tpl.php'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;In the above example, we use an array to assign a number of template variable tokens at once; it is just as easy to assign an object instead of an array, and the object properties will be assigned to the template.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 id=&quot;toc5&quot;&gt; Template Script&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;Here is the Savant template script, called &lt;tt&gt;example.tpl.php&lt;/tt&gt;.  Note how we use the alternative syntax for control structures here; it's not required, but it can be easier to read in many cases.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;&amp;lt;?php echo $title ?&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;p&amp;gt;These variables were set as an array where the array key &lt;br /&gt;
        was the variable name and the array value was the variable &lt;br /&gt;
        value.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;?php echo $var1 ?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;?php echo $var2 ?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;?php echo $var3 ?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;?php if (is_array($book)): ?&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            &amp;lt;table&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                    &amp;lt;th&amp;gt;Author&amp;lt;/th&amp;gt;&lt;br /&gt;
                    &amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
                &amp;lt;?php foreach ($book as $key =&amp;gt; $val): ?&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                        &amp;lt;td&amp;gt;&amp;lt;?php echo $val['author'] ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                        &amp;lt;td&amp;gt;&amp;lt;?php echo $val['title'] ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
            &amp;lt;/table&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
        &amp;lt;?php else: ?&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            &amp;lt;p&amp;gt;There are no books to display.&amp;lt;/p&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
        &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Note that the template language is natural PHP without any special markup or &amp;quot;helpful&amp;quot; shortcuts.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Because the template is in natural PHP, any errors in processing the template are immediately transparent, as they are reported on the actual source template script and not an intermediary cached or compiled script.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 id=&quot;toc6&quot;&gt; Plugins and Filters&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;You can use the standard Savant plugins within your Savant template, and you can write your own.  Savant plugins are comparable to Smarty plugins.  Please see &lt;a href=&quot;http://phpsavant.com/index.php?page=SavantPlugins&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;http://phpsavant.com/index.php?page=SavantPlugins&lt;/a&gt; for more information.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;You can use the standard Savant output filters on the displayed or fetched template output, and you can write your own.  Please see &lt;a href=&quot;http://phpsavant.com/index.php?page=SavantFilters&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;http://phpsavant.com/index.php?page=SavantFilters&lt;/a&gt; for more information.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 id=&quot;toc7&quot;&gt; Caching&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;Here is a simple example of how to cache output with Savant and Cache_Lite.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// assume existence of Cache_Lite object called $cache&lt;br /&gt;
// and a unique page ID called $id.  hit the cache.&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$output &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$cache&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$id&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// was there cached output?&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;if (! &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$output&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// no, generate and save it&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$savant &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;amp; new &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Savant&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;();&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$savant&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;assign&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(...); &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// whatever&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$output &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$savant&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;fetch&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;'template.tpl.php'&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;
    &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$cache&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;save&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$output&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$id&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
echo &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$output&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;toc8&quot;&gt; Other Packages&lt;/h2&gt;&lt;br /&gt;
&lt;p&gt;Why does PEAR need another template system?  Why not contribute to another package?&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;All of the PEAR template packages do some form of template compiling and evaluation, and they all (with one exception, sort of) use a custom template language.  Savant does neither:  no compiling, and no special markup.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 id=&quot;toc9&quot;&gt; IT, PHPLIB, Sigma&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;These template engines are &lt;strong&gt;not&lt;/strong&gt; directly comparable to Savant for various reasons.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;IT -- Evaluates templates with regular expressions. A holdover from PHP3 and early PHP4 days.&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;PHPLIB -- Evaluates templates with regular expressions.  A holdover from an earlier framework system.&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Sigma -- Evaluates templates with regular expressions, and optionally caches the evaluated template code.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 id=&quot;toc10&quot;&gt; Flexy, Xipe&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;These template engines &lt;strong&gt;are&lt;/strong&gt; comparable to Savant because of the power and flexibility they provide.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;Flexy -- Compiles to PHP from custom markup.  No comparable plugin or output filter system.&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Xipe -- Compiles to PHP from custom markup.  No comparable plugin or output filter system.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Again, Savant is &lt;strong&gt;already&lt;/strong&gt; in PHP, so no compilation is necessary.  Although Xipe supports pre- and post-filters, they apply to the compiled PHP code, not the generated output.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Of these template systems in PEAR, the one that is brought up most often form comparison is Xipe.  This came up on the Savant website; the question is verbatim, but I have updated and edited the answer for use in this proposal (it is substantially the same answer as on the website).&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Question:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;
        Could you please outline the major differences of Savant compared to&lt;br /&gt;&lt;br /&gt;
HTML_Template_Xipe? To me it seems these two projects have the same goals&lt;br /&gt;&lt;br /&gt;
but Xipe is easier to use (no need for &amp;lt;?php ... ?&amp;gt; and automatic echoing&lt;br /&gt;&lt;br /&gt;
of values). I am referring to Xipe using the SimpleTag language here.What does Savant offer over Xipe?&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;
My answer:&lt;br /&gt;
    &lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;
        Among other things, Xipe compiles its templates, and Savant does not.&lt;p&gt;Even though Xipe uses PHP as its language, it still compiles the&lt;br /&gt;&lt;br /&gt;
templates, which adds to time and overhead on the first processing pass&lt;br /&gt;&lt;br /&gt;
(and perhaps subsequent passes).  Savant uses plain PHP and does not need&lt;br /&gt;&lt;br /&gt;
to compile.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Xipe uses variables directly from the script, without a step for&lt;br /&gt;&lt;br /&gt;
&amp;quot;assigning&amp;quot; them to the template; Savant uses an explicit &amp;quot;assign()&amp;quot;&lt;br /&gt;&lt;br /&gt;
method to push variables to the template.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;...&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;The documentation for Xipe is not complete, although it does come in three&lt;br /&gt;&lt;br /&gt;
flavors (.html, .sxw, and .pdf); Savant docs are complete and online with&lt;br /&gt;&lt;br /&gt;
comments enabled.  :-)&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Xipe does not appear to have a plugin system like Savant, although it does&lt;br /&gt;&lt;br /&gt;
have a similar filter system (but there's no documentation on how to write&lt;br /&gt;&lt;br /&gt;
your own filters).  ...&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Xipe tries to add new template language elements (the SimpleTag language),&lt;br /&gt;&lt;br /&gt;
tries to interpret indents, and so on.  Yes, you can &amp;quot;turn off&amp;quot; those&lt;br /&gt;&lt;br /&gt;
features but you have to know about them to do that.  Savant uses PHP, all&lt;br /&gt;&lt;br /&gt;
of PHP, and nothing but PHP, in normal PHP format (ugly long tags and&lt;br /&gt;&lt;br /&gt;
everything ;-).&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;In short, the &amp;quot;simplicity&amp;quot; of Xipe takes some time to learn and get used&lt;br /&gt;&lt;br /&gt;
to; Savant is just PHP right out of the box.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
None of this is to say that Xipe is bad; it is certain that it appeals to&lt;br /&gt;&lt;br /&gt;
many developers (e.g., its translation routines look quite nice).&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 id=&quot;toc11&quot;&gt; Other Reasons For Savant&lt;/h2&gt;&lt;br /&gt;
&lt;p&gt;Savant templates are easy for new and experienced PHP developers to comprehend, modify, and debug, becuase templates are already in PHP (no need to learn a new template markup)&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant templates, because they are already in PHP, can be documented with phpDocumentor.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant templates can be used for anything:  HTML, RSS, XML, PDF, RTF, any kind of binary or text file.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant does not attempt to impose on your coding style any more than minimally necessary, and at the same time it tries to operate as intelligently and transparently as possible.  For example, if you like assigning individual scalar elements, &lt;tt&gt;assign()&lt;/tt&gt; works for you; if you prefer to assign by associative array, &lt;tt&gt;assign()&lt;/tt&gt; works for you too; finally, if object properties are your thing, &lt;tt&gt;assign()&lt;/tt&gt; still works for you.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant is perfect for distributed applications.  Among other things, the end user does not have to worry about compile-directory or cache-directory permissions, because Savant does not compile templates.  Because of the path management utilities in Savant, developers can make their applications theme-aware with little effort.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Savant is STABLE at version 1.5 and in production at many high-traffic sites, although the package file linked in this proposal is 0.0.x-devel due to refactoring based on proposal commentary.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Harry Fuecks notes:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;
        ...it's &amp;quot;low risk&amp;quot; for users - there's minimal lock in to the template syntax - if someone decides to ditch Savant at a later date, the templates can, more or less, still be used.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;
And finally, in reference to a recent PEAR-QA thread, it appears that &lt;a href=&quot;http://news.php.net/article.php?group=php.pear.qa&amp;amp;article=1333&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;Wolfram Kriesing is orphaning Xipe&lt;/a&gt;.  Because &lt;a href=&quot;http://news.php.net/article.php?group=php.pear.qa&amp;amp;article=1334&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;Flexy is the natural successor of Xipe&lt;/a&gt;, Xipe &lt;a href=&quot;http://news.php.net/article.php?group=php.pear.qa&amp;amp;article=1335&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;may eventually be deprecated&lt;/a&gt;.&lt;br /&gt;
&lt;h2 id=&quot;toc12&quot;&gt; Possible Enhancements&lt;/h2&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;Add I18N plugins or filters&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;When PHP5 is widely available, use __call() overloading to call plugins instead of $this-&amp;gt;plugin()&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Casino &lt;a href=&quot;https://vavada-panda.pro&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;Vavada&lt;/a&gt; welcomes new players with several exciting bonuses. Get 100 free spins as a gift to start your journey in the world of slots, and also enjoy a 100% bonus on your first deposit.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2025-02-18T17:30:45-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=708">
 <title>PEPr Proposal [708]: RFC::KeyCDN_API</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=708</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        RFC::KeyCDN_API&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/petermeyer&quot;&gt;Peter Meyer&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;PHP Library for the KeyCDN REST API. The KeyCDN API allows you to manage zones, zonealiases, zonereferrers or generate reports. JSON will be returned in all responses from the API, including errors.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Create &lt;a href=&quot;https://www.keycdn.com/&quot; onclick=&quot;window.open(this.href, '_blank'); return false;&quot;&gt;CDN&lt;/a&gt; Account&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2014-12-16T14:08:02-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=696">
 <title>PEPr Proposal [696]: System::Net_Syslog</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=696</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        System::Net_Syslog&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/leirn&quot;&gt;Laurent Vromman&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;The Syslog class is a syslog client implementation in PHP following the RFC 3164, 5424, 5425, 5426 rules.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;This class is compatible with PHP logger constants for serverity and facility.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Default value are UDP connection with RFC3164 mode&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2013-09-18T20:40:57-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=695">
 <title>PEPr Proposal [695]: PHP::BreakpointDebugging_PHPUnit</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=695</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        PHP::BreakpointDebugging_PHPUnit&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/wasa&quot;&gt;Hidenori Wasa&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;Executes unit test files continuously, and debugs with IDE.&lt;br /&gt;&lt;br /&gt;
Also, creates code coverage report, then displays in browser.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2013-09-16T19:34:58-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=686">
 <title>PEPr Proposal [686]: Date and Time::Date_Holidays_Serbia-0.1.0</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=686</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Date and Time::Date_Holidays_Serbia-0.1.0&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/acim&quot;&gt;Boban Acimovic&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;Date_Holidays helps you calculate the dates and titles of holidays and other special celebrations. This is the driver for calculating holidays in Serbia.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2012-12-19T03:28:18-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=684">
 <title>PEPr Proposal [684]: File Formats::PCB</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=684</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        File Formats::PCB&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/majenko&quot;&gt;Matt Jenkins&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;Collection of nested classes to interact with and manipulate gEDA PCB files.  Provides a single coherent parent object for an entire PCB with a tree of sub objects within it for every structure within the file.  Objects can be manipulated within the tree, and the whole tree can be output again in gEDA PCB format.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2012-12-03T20:20:52-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=680">
 <title>PEPr Proposal [680]: Mail::Mail_AmazonSES</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=680</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Mail::Mail_AmazonSES&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/gregoriohc&quot;&gt;Gregorio Hernandez Caso&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;Amazon SES implementation of the PEAR Mail:: interface&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2012-09-13T23:48:14-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=677">
 <title>PEPr Proposal [677]: Payment::Balanced</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=677</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Payment::Balanced&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/mahmoudimus&quot;&gt;mahmoud abdelkader&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;Balanced PHP client for payments&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2012-04-03T01:39:34-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>
<item rdf:about="http://pear.php.net/pepr/pepr-proposal-show.php?id=676">
 <title>PEPr Proposal [676]: Semantic Web::FourStore</title>
 <link>http://pear.php.net/pepr/pepr-proposal-show.php?id=676</link>
 <content:encoded>&lt;br /&gt;
Proposed package:        Semantic Web::FourStore&lt;br /&gt;&lt;br /&gt;
Proposer:                &lt;a href=&quot;/user/doconnor&quot;&gt;Daniel O'Connor&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;Fourstore (4store-php) is a library to interact with the 4store datastore.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;It provides a thin wrapper around a SPARQL endpoint, and provides methods to add information, update information, remove information, etc from the store.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;While the library itself has been published previously, it hasn't had many improvements. One particular fork has added a number of enhancements, but not in a fashion suitable for others to reuse (ie:custom implementations of Net_Ping, inclusion of other external libraries in the core source, etc).&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Likely future steps for this package would include taking the &amp;quot;best of&amp;quot; from other forks, but ensuring they are implemented in a reusable PEAR-friendly fashion.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;

 </content:encoded>
 <dc:date>2012-03-12T16:32:47-05:00</dc:date>
 <dc:publisher></dc:publisher>
</item>

</rdf:RDF>