<?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>Thu, 23 May 2013 21:14:43 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Andrew Podner: Lithium: Building Views Using Layouts]]></title>
      <guid>http://www.phpdeveloper.org/news/19176</guid>
      <link>http://www.phpdeveloper.org/news/19176</link>
      <description><![CDATA[<p>
<i>Andrew Podner</i> has written up a new post for his site today about <a href="http://unassumingphp.com/lithium-building-views-using-layouts/">building views/layouts in Lithium</a> and make the maintenance of your application simpler in the long run.
</p>
<blockquote>
The last time I wrote about the <a href="http://lithify.me/">Lithium framework</a>, the focus was on getting information out of a MySQL database.  Once you have that information, in many cases you will want to show it to the user.  In this installment, we are going to look at how Lithium implements layouts for your output in an effort to improve reusability of code, which ultimately improves the developer's ability to quickly get applications up and running and it makes maintenance down the road that much easier.
</blockquote>
<p>
He talks about the basic structure of an application (on the file system) and where the layouts and views live inside it. He includes a sample layout that defines areas for things like title, scripts, character set and main content. Code is also included showing how to use it in your application. There's also a bit about setting up a default layout in your "_init" method if you'd like to use it across the entire application.
</p>]]></description>
      <pubDate>Wed, 13 Feb 2013 11:54:04 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Andrew Podner: Why Lithium is Worth a Look]]></title>
      <guid>http://www.phpdeveloper.org/news/18981</guid>
      <link>http://www.phpdeveloper.org/news/18981</link>
      <description><![CDATA[<p>
<i>Andrew Podner</i> has a new post to his site today sharing some of the things he discovered when <a href="http://unassumingphp.com/why-lithium-is-worth-a-look/">looking into Lithium</a>, a <a href="http://lithify.me/">PHP framework</a> that is "the first to break ground into major new technologies, including bridging the gap between relational and non-relational databases through a single, unified API."
</p>
<blockquote>
Enter my New Year's Resolution.  I promised myself that I would pick up another framework this year and I had been introduced to <a href="http://lithify.me/">Lithium</a> at Codeworks in a presentation given by <a href="https://twitter.com/ElizabethN">Elizabeth Naramore</a> several months ago.  So I downloaded it, and went through the obligatory blog tutorial, all of which seemed pretty straightforward.
</blockquote>
<p>
He goes through a "checklist" of the things he'd need for his project (including autoloading, namespaces and integration with PHPUnit) and some of the "extras" he wanted hooks for during his development, several he was happy to find were already integrated. He does note a few places where the framework falls a bit short though, like in the quality of the user guide (it "needs some help") that seems incomplete in places.
</p>
<blockquote>
That said, I still think it is worth the time and the effort to get to know Lithium better.  The framework shows a lot of promise, and the architecture of it leaves me with the impression that the devs spent a lot of time thinking through what a developer needs to get the job done quickly.
</blockquote>]]></description>
      <pubDate>Wed, 02 Jan 2013 11:51:43 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Voices of the ElePHPant Podcast: Interview with Nate Abele]]></title>
      <guid>http://www.phpdeveloper.org/news/18744</guid>
      <link>http://www.phpdeveloper.org/news/18744</link>
      <description><![CDATA[<p>
The Voices of the ElePHPant podcast has published their latest interview with a PHP community member - this time it's <a href="http://voicesoftheelephpant.com/2012/11/13/interview-with-nate-abele/">Nate Abele</a> of the Lithium framework project (as recorded in the 
</p>
<p>
<i>Cal</i>'s three questions talk mostly about his work on the <a href="http://lithify.me/">Lithium framework</a> 
</p>
<ul>
<li>What started you on the road to building another framework?
<li>What makes Lithium special?
<li>What is your favorite piece of the framework?
</ul>
<p>
You can listen to this latest episode either through the <a href="http://voicesoftheelephpant.com/2012/11/13/interview-with-nate-abele/">in-page player</a>, by <a href="http://voices.of.the.elephpant.s3.amazonaws.com/vote_070.mp3">downloading the mp3</a> or <a href="http://voicesoftheelephpant.com/feed/podcast/">subscribing to their feed</a>.
</p>]]></description>
      <pubDate>Wed, 14 Nov 2012 09:13:53 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Engine Yard: Introducing Lithium: The simple, fast and flexible PHP framework]]></title>
      <guid>http://www.phpdeveloper.org/news/18254</guid>
      <link>http://www.phpdeveloper.org/news/18254</link>
      <description><![CDATA[<p>
For those that have heard about the <a href="http://lithify.me/">Lithium PHP framework</a> but haven't gotten a chance to get into it, Engine Yard is <a href="http://pages.engineyard.com/WCEYIndroducingLithium072612.html">hosting a webinar</a> just for you. <i>Nate Abele</i>, one of the core developers for the framework, will be presenting an introduction to the framework on July 26th.
</p>
<blockquote>
<a href="http://lithify.me/">Lithium</a> is a framework for PHP 5.3+ that is focused on quality, speed, and flexibility. It's a set of no-nonsense philosophies and tools that enable you to build better applications, in less time, without sacrificing quality or extensibility. Lithium understands distributed storage and caching, queuing systems, micro-dispatch frameworks, with integrated support for document oriented databases like CouchDB and MongoDB, alongside relational databases like MySQL and PostgreSQL. Lithium's architecture allows you to get your application up and running quickly, and still allows you to take control of the framework to support the requirements of your application.
</blockquote>
<p>
If you're interested, you can <a href="http://pages.engineyard.com/WCEYIndroducingLithium072612.html">sign up for the webcast</a> on the Engine Yard site. The event happens July 26th at 10am PST.
</p>]]></description>
      <pubDate>Fri, 20 Jul 2012 10:49:48 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[EngineYard.com: Cloud Out Loud Podcast - "Lithium and Boating"]]></title>
      <guid>http://www.phpdeveloper.org/news/18102</guid>
      <link>http://www.phpdeveloper.org/news/18102</link>
      <description><![CDATA[<p>
Engine Yard has released their latest "Cloud Out Loud" podcast episode - <a href="http://www.engineyard.com/podcast/lithium-and-boating">an interview with Garrett Woodworth</a>, a member of the EngineYard development group and a founding member of the recently sponsored <a href="https://github.com/UnionOfRAD/lithium">Lithium</a> PHP framework.
</p>
<blockquote>
On the heels of our Lithium sponsorship announcement, Elizabeth Naramore interviews Garrett Woodworth (fondly known as Gwoo) about the roots of Lithium, where it's going, and how he develops it on a boat.
</blockquote>
<p>
They talk about why he contributes to Open Source, his involvement with the Lithium framework project and how he does most of his development from his boat. You can listen to this latest episode either on the <a href="http://www.engineyard.com/podcast/lithium-and-boating">in-page player</a> or by <a href="http://s3.amazonaws.com/engineyard.com/podcasts/mp3/mp3s/80/Gwoo.mp3">grabbing the mp3</a> directly.
</p>]]></description>
      <pubDate>Fri, 15 Jun 2012 13:48:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Engine Yard Blog: Engine Yard Sponsors the Lithium Framework]]></title>
      <guid>http://www.phpdeveloper.org/news/18095</guid>
      <link>http://www.phpdeveloper.org/news/18095</link>
      <description><![CDATA[<p>
According to <a href="http://www.engineyard.com/blog/2012/engine-yard-sponsors-the-lithium-framework/">this new post</a> on the EngineYard blog, they've decided to become the official sponsor behind the <a href="http://lithify.me/">Lithium PHP framework</a>, a project that's been going for several years but just hasn't seen the adoption of <a href="http://symfony.com">other</a> <a href="http://fuelphp.com">frameworks</a> that are PHP 5.3-centric.
</p>
<blockquote>
We are proud to announce that Engine Yard is now the first official sponsor of the open source project, the Lithium PHP framework. We believe that Lithium holds a great deal of promise and we want to help it reach its full potential. Therefore, not only are we pledging our financial support, we will be working together to promote the framework to our customers and partners and the community at large through conferences, meetups and webcasts.
</blockquote>
<p>
The post names some of the core development team (including <a href="http://twitter.com/gwoo">Garrett Woodworth</a> and <a href="http://twitter.com/nateabele">Nate Abele</a>) and suggests following the <a href="http://twitter.com/unionofrad">Lithium</a> and <a href="http://twitter.com/engineyard">EngineYard</a> twitter accounts for future details.
</p>]]></description>
      <pubDate>Thu, 14 Jun 2012 13:25:58 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Michael Nitschinger's Blog: A primer on PHP exceptions]]></title>
      <guid>http://www.phpdeveloper.org/news/17994</guid>
      <link>http://www.phpdeveloper.org/news/17994</link>
      <description><![CDATA[<p>
<i>Michael Nitschinger</i> has a new post focusing on one of the more commonly used, but maybe just as commonly misunderstood, part of PHP - <a href="http://nitschinger.at/A-primer-on-PHP-exceptions">exceptions and their handling</a>. His latest post looks at what Exceptions in PHP have to offer and provides some "best practices" in their use.
</p>
<blockquote>
Exceptions are and should be an integral part of any general purpose programming language. PHP introduced them long ago (with the release of PHP 5 or 5.1), but it still seems that many of the concepts are not fully understood or ignored by the community. This post aims to be a solid introduction to exception architecture, handling and testing. At the end of the post you should be able to know when to raise an exception and how it should look like.
</blockquote>
<p>
He talks about situations when (and when not) to use exceptions, normalizing them for easier try/catch-ing and includes the exception class hierarchy, including the types pulled from the <a href="http://php.net/spl">SPL</a>. He shows examples (based on the <a href="http://lithify.me/">Lithium</a> framework's namespacing)  how to create "namespaced exceptions" and how to use these in a bit of sample code. He also mentions the use of the custom <a href="http://us.php.net/manual/en/class.errorexception.php">error handling with the ErrorException</a> as well as a quick look at testing these basic and custom exceptions correctly (PHPUnit-based tests).
</p>]]></description>
      <pubDate>Wed, 23 May 2012 09:17:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Michael Nitschinger's Blog: Introducing Relationships in Lithium]]></title>
      <guid>http://www.phpdeveloper.org/news/17625</guid>
      <link>http://www.phpdeveloper.org/news/17625</link>
      <description><![CDATA[<p>
In <a href="http://nitschinger.at/Introducing-Relationships-in-Lithium">this new post</a> to his blog <i>Michael Nitschinger</i> introduces relationships in using the Lithium framework - functionality to link your models to each other to create dependencies.
</p>
<blockquote>
The model relationship support in Lithium is one of the hottest topics on IRC lately, so I thought it would be a good idea to blog about it. Currently, Lithium supports 1:1 and 1:n relationships for relational databases. [...] This post gives you a little background on relationship types and their database representations before we implement a simple example in PHP.
</blockquote>
<p>
He gives some code (and schema) examples of creating these relationships between tables for the two types - one to one and one to many. He also touches on the zero-to-zero relationships as well, nothing that they can be some of the most tricky to work with. He includes the SQL and the code you'll need to produce a blog example with models for Authors, Posts and Groups. Using the belongsTo/hasMany/hasOne variables he defines the relationships and uses the "with" keyword in the find calls to pull in those relations.
</p>]]></description>
      <pubDate>Mon, 05 Mar 2012 11:21:39 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Michael Nitschinger's Blog: RFC: li3_fixtures Rewrite]]></title>
      <guid>http://www.phpdeveloper.org/news/17588</guid>
      <link>http://www.phpdeveloper.org/news/17588</link>
      <description><![CDATA[<p>
<i>Michael Nitchinger</i> has a new post to his blog about <a href="http://nitschinger.at/RFC-li3_fixtures-Rewrite">a rewrite for the Lithium framework</a> - changing up the li3_fixtures plugin to make it a bit more of what the community needs.
</p>
<blockquote>
The <a href="https://github.com/daschl/li3_fixtures">li3_fixtures</a> plugin was my first Lithium plugin ever, and while it works okay, I feel there is a lot I can do to make it better and more flexible. In this post I want to share my ideas for a new fixture plugin and also want to gather feedback from the community to make it even more awesome.
</blockquote>
<p>
He gives three instance where fixtures can come in extremely useful - making effective model unit tests with predictable data, mocking models with shortcuts to the data and mocking out web services. Want to add in your own suggestions for his refactor? <a href="http://nitschinger.at/RFC-li3_fixtures-Rewrite">Comment on the post!</a>
</p>]]></description>
      <pubDate>Mon, 27 Feb 2012 09:23:37 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Michael Nitschinger's Blog: Playing with Composer and Lithium]]></title>
      <guid>http://www.phpdeveloper.org/news/17439</guid>
      <link>http://www.phpdeveloper.org/news/17439</link>
      <description><![CDATA[<p>
<i>Michael Nitschinger</i> has a new post to his blog looking at using the popular <a href="http://packagist.org/about-composer">Composer</a> tool for package management <a href="http://nitschinger.at/Playing-with-Composer-and-Lithium">together with Lithium</a> to make dependency management simpler.
</p>
<blockquote>
<a href="http://packagist.org/about-composer">Composer</a> is a command-line tool that helps you manage your application dependencies. It automatically fetches packages, resolves dependencies and is easy to configure. [...] Currently, Lithium doesn't provide Composer packages out of the box, but it's easy to write one.
</blockquote>
<p>
He starts the post with an introduction to using Composer for those new to the tool, then moves quickly into setting up your "composer.json" file to pull in the Lithium updates from their github account. Additionally, he shows how to add a dependency for <a href="http://twig.sensiolabs.org/">twig</a> in the "require" section and pull it down at the same time (with dependencies).
</p>]]></description>
      <pubDate>Tue, 24 Jan 2012 10:20:51 -0600</pubDate>
    </item>
  </channel>
</rss>
