<?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>Mon, 20 May 2013 00:56:28 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Bertrand Mansion's Blog: Twitter Bootstrap and the QuickForm2 Callback Renderer]]></title>
      <guid>http://www.phpdeveloper.org/news/16908</guid>
      <link>http://www.phpdeveloper.org/news/16908</link>
      <description><![CDATA[<p>
In a new post <i>Bertrand Mansion</i> shows <a href="http://mansion.im/2011/twitter-bootstrap-and-the-quickform2-callback-renderer/">how he combined</a> the versatility of the PEAR <a href="http://pear.php.net/package/HTML_QuickForm2">QuickForm2</a> package and the <a href="http://twitter.github.com/bootstrap/">Bootstrap project</a> from Twitter to quickly make a form using the project's styling (CSS).
</p>
<blockquote>
I don't know about you, but for me building HTML Forms and styling HTML Forms are maybe the most boring things in web development. It's repetitive and takes a lot of time to do things correctly. That's why tools like Twitter's Bootstrap and PEAR's HTML_QuickForm2 can help with this part of our job. Wouldn't it be nice to have QuickForm2 generate a markup compatible with Bootstrap CSS, so that you could get a nice looking form without to much efforts? Well, that's what I plan to do here.
</blockquote>
<p>
He starts by creating a simple QuickForm2 form with no renderers attached (no pre-defined styles) and a custom render callback that wraps the items in "div" tags with the correct styles. There's also a custom renderer included for grouping items with additional styling attached.
</p>]]></description>
      <pubDate>Mon, 26 Sep 2011 12:23:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Violating the Liskov Substitution Principle - PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16537</guid>
      <link>http://www.phpdeveloper.org/news/16537</link>
      <description><![CDATA[<p>
On DevShed today there's a new tutorial posted talking about the Liskov Substitution Principle (part of the SOLID set of principles) and how to use it in a practical example using some object-oriented PHP.
</p>
<blockquote>
However, not all is bad with Inheritance. When used properly it can be a great ally. The question that comes to mind is: how can you keep away from building derivatives that behave totally different from the chosen abstraction(s)? Here's exactly where the Liskov Substitution Principle (LSP) comes into play.
</blockquote>
<p>
They choose to illustrate the principle in the form of a view renderer that, when an unintentional issue happens, throws a new exception. He creates the abstract class to generate the view objects and creates a few child objects that extend it. using these, he creates a set of templates that render a header/footer/body with the data given. The <a href="http://www.devshed.com/c/a/PHP/PHP-Liskov-Substitution-Principle/2/">problem comes up</a> when he tries to work with his objects and a partial view instead of a composite view is passed in. 
</p>
<p>
It's a complicated situation to follow, but it does help make the principle a bit more clear. I'd suggest following it all the way through and possibly even trying out their code (included) to make it even more clear.
</p>]]></description>
      <pubDate>Thu, 30 Jun 2011 08:36:31 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Michael Maclean's Blog: Using Pango for PHP: a taster]]></title>
      <guid>http://www.phpdeveloper.org/news/15943</guid>
      <link>http://www.phpdeveloper.org/news/15943</link>
      <description><![CDATA[<p>
<i>Michael Maclean</i> has a new article today talking about the <a href="http://pango.org/">Pango</a> graphics library and how it can be coupled with the <a href="http://pecl.php.net/package/cairo">Cairo PECL extension</a> to more easily create better looking text in dynamic images.
</p>
<blockquote>
The <a href="http://pecl.php.net/package/cairo">PECL/Cairo</a> library is pretty good at drawing vector graphics (in our opinion, as the developers, at least!), but one thing it's not able to do by itself is draw text with mildly advanced layout. [...] That's because the developers of the Cairo library decided to let another more specialised library handle the job of text layout.
</blockquote>
<p>
<i>Michael</i> has created <a href="https://github.com/mgdm/php-pango">a wrapper</a> for Pango in PHP (github) and some sample code that can be used as a test to ensure it's all setup and working. He steps through each part of the image creation and describes what's happening and what each method is doing along the way.
</p>]]></description>
      <pubDate>Tue, 22 Feb 2011 12:58:27 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Till Klampaeckel's Blog: Zend Framework: Slow automatic view rendering]]></title>
      <guid>http://www.phpdeveloper.org/news/14271</guid>
      <link>http://www.phpdeveloper.org/news/14271</link>
      <description><![CDATA[<p>
In a new entry to his blog, <i>Till Klampaeckel</i> looks at <a href="http://till.klampaeckel.de/blog/archives/92-Zend-Framework-Slow-automatic-view-rendering.html">view rendering for Zend Framework</a> applications and how, as he assumed it would, making a change in the automatic rendering on the views could speed things up quite a bit.
</p>
<blockquote>
My thesis is that there's a gain in page rendering time when I disable automatic view rendering and use explicit render calls ($this->render('foo');) inside my controllers. And to cut to the chase, there is. On our  app, I measured a 12% improvement using Xdebug's profiler - simple before-after-style.
</blockquote>
<p>
He talks a bit about his setup for testing his theory complete with a customized loader as well as the platform (OS and web server) he ran the tests on. He used <a href="http://xdebug.org/docs/install">Xdebug</a> to run the testing. His conclusion is a pretty obvious one - what you gain in convenience you sacrifice in performance. 
</p>]]></description>
      <pubDate>Tue, 30 Mar 2010 14:50:16 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Vinu Thomas' Blog: pChart - PHP charting library]]></title>
      <guid>http://www.phpdeveloper.org/news/11265</guid>
      <link>http://www.phpdeveloper.org/news/11265</link>
      <description><![CDATA[<p>
<i>Vinu Thomas</i> <a href="http://blogs.vinuthomas.com/2008/10/22/pchart-php-charting-library/">points out</a> a nice looking PHP charting library on his blog today - pChart.
</p>
<blockquote>
Looking for some good looking graphs without having to pay for a library or resort to Flash graphs? Try creating your own using pChart. pChart is a PHP class oriented framework designed to create aliased charts. This project focuses on allowing developers to generate great looking graphs by increasing rendering quality introducing an aliasing algorithm.
</blockquote>
<p>
It uses <a href="http://en.wikipedia.org/wiki/GD_Graphics_Library">GD</a> to create the graphs, so just about any PHP distribution out there will support it (if you're not sure, make a phpinfo() page to check out your setup). There's even some <a href="http://pchart.sourceforge.net/screenshots.php">example graphs</a> so you can get an idea of what some of the end results could be.
</p>]]></description>
      <pubDate>Wed, 22 Oct 2008 07:53:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Christian Weiske's Blog: PEARhd steaming on]]></title>
      <guid>http://www.phpdeveloper.org/news/11223</guid>
      <link>http://www.phpdeveloper.org/news/11223</link>
      <description><![CDATA[<p>
<i>Christian Weiske</i> set out on a project - no small thing - to convert the current PEAR documentation info over to the PhD DocBook rendering system. In <a href="http://cweiske.de/tagebuch/PEARhd%20steaming%20on.htm">a new post</a> he talks about the conversion process and some of the technology involved.
</p>
<blockquote>
The reason for PhD to exist was that the previously used DSSSL based system was slow: a full build (all formats and all languages) took 24 hours to complete. Further, the tools the system based on were old, rusty and nobody understood why they broke on some machines, but also why they worked on other ones. Having a php-based system for PHP ensures that there is always someone around who can fix it if it's broken. This wasn't the case with the old documentation build system. 
</blockquote>
<p>
The conversion was spurred on by the fact that the PEAR documentation stopped building and more and more people were finding it hard to build on their machines too. He walks through the steps he took - installing PhD, converting over the docs to the DocBook 5 format and the first builds with the new system.
</p>
<blockquote>
Now that at the XML was shiny, too, it was time to actually use  PhD on it. The numbers were amazing: While a build for one format and one language took around 40 minutes on my system (dual core Macbook with 2GHz and 2GiB RAM), building the same with PhD takes 45 seconds! 
</blockquote>]]></description>
      <pubDate>Thu, 16 Oct 2008 08:49:02 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Rudy Nappee's Blog: The harest week (GSoC Docbook Renderer)]]></title>
      <guid>http://www.phpdeveloper.org/news/10647</guid>
      <link>http://www.phpdeveloper.org/news/10647</link>
      <description><![CDATA[<p>
<i>Rudy Nappee</i> has just finished what he calls <a href="http://loudi-soc.blogspot.com/2008/07/hardest-week.html">the hardest week</a> in his Google Summer of Code project</a> - work on the PDF output methods:
</p>
<blockquote>
Here was the hardest GSoC week ! I wrote a big part of the PDF output and both the themes "phppdf" (each PHP manual part in a file) and "phpbigpdf" (a big PDF file with all the sections).
</blockquote>
<p>
<i>Rudy</i>'s project for the GSoC is to <a href="http://loudi-soc.blogspot.com/2008/06/soc-begins.html">create a Docbook renderer</a> that can take in a standard Docbook file and output it into multiple formats. This past week saw the development of the PDF output method but he's also created methods for making a CHM (Windows help file) and a manpage output format. You can keep up with his latest progress on <a href="http://loudi-soc.blogspot.com/">his blog</a>.
</p>]]></description>
      <pubDate>Mon, 21 Jul 2008 12:07:39 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Rob Allen's Blog: Top Tip: XHTML with Zend Form Elements]]></title>
      <guid>http://www.phpdeveloper.org/news/10297</guid>
      <link>http://www.phpdeveloper.org/news/10297</link>
      <description><![CDATA[<p>
<i>Rob Allen</i> has posted <a href="http://akrabat.com/2008/05/29/top-tip-xhtml-with-zend-form-elements/">a quick tip</a> of how to use the Zend_Form component of the <a href="http://framework.zend.com">Zend Framework</a> to correctly render XHTML compliant output.
</p>
<blockquote>
When you render a Zend_Form, the elements will render to HTML compliance rather than XHTML compliance, even if you have < ?php echo $this->doctype('XHTML1_STRICT');?> at the top of your layout script. Practically, this means that all the input elements do not end in "/>". To resolve this, you need to call the doctype() view helper prior to rendering your form. 
</blockquote>
<p>
He includes an <a href="http://akrabat.com/2008/05/29/top-tip-xhtml-with-zend-form-elements/">example</a> of the doctype call (on a view object) to tell the script to output in the "XHTML1_TRANSITIONAL" format.
</p>]]></description>
      <pubDate>Thu, 29 May 2008 12:01:50 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP.net: The new documentation build system is ready for testing]]></title>
      <guid>http://www.phpdeveloper.org/news/8787</guid>
      <link>http://www.phpdeveloper.org/news/8787</link>
      <description><![CDATA[<p>
The main PHP website has <a href="http://www.php.net/index.php#2007-10-03-1">announced</a> the release of the new documentation build system (as <i>Hannes Magnusson</i> <a href="http://www.phpdeveloper.org/news/8769">mentioned previously</a>) is ready and has been launched for testing.
</p>
<blockquote>
<p>
The PHP documentation team is pleased to announce the initial release of the new build system that generates the PHP Manual. Written in PHP, PhD ([PH]P based [D]ocBook renderer) builds are now available for viewing at <a href="http://docs.php.net/">docs.php.net</a>. Everyone is encouraged to test and use this system so that <a href="http://bugs.php.net/">bugs</a> will be found and squashed.
</p>
<p>
Once the new build system is stable, expect additional changes to the PHP manual that will include an improved navigation system and styling for OOP documentation. 
</p>
</blockquote>
<p>
You can use the <a href="http://www.php.net/my.php">my.php page</a> to set it as your default mirror if you'd like to use it seamlessly.
</p>]]></description>
      <pubDate>Thu, 04 Oct 2007 11:17:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ben Ramsey's Blog: Zend Framework View Notes]]></title>
      <guid>http://www.phpdeveloper.org/news/7565</guid>
      <link>http://www.phpdeveloper.org/news/7565</link>
      <description><![CDATA[<p>
In a <a href="http://benramsey.com/archives/zend-framework-view-notes/">new entry</a> today, <i>Ben Ramsey</i>, how's been working with the Zend Framework for a bit now, shares an interesting bit of information about how to use Views a little bit differently.
</p>
<blockquote>
Most notably, I've started using the "new way" of using views, which is still undocumented in the manual. Rather than create a new Zend_View object, tell it where my views are, and echo a call to its render() method, I'm letting the controller's render() method do it all for me.
</blockquote>
<p>
He illustrates with a <a href="http://benramsey.com/archives/zend-framework-view-notes/">simple example</a> using the default framework directory setup, save for the special "scripts" directory he creates. This makes it possible for the controller to handle the rendering rather than the typical view functionality. Then, using the views is a simple init() call away, automagically.
</p>]]></description>
      <pubDate>Thu, 05 Apr 2007 06:59:44 -0500</pubDate>
    </item>
  </channel>
</rss>
