<?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>Sun, 12 Feb 2012 20:31:15 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Jani Hartikainen's Blog: Why does everything need to be integrated into a framework?]]></title>
      <guid>http://www.phpdeveloper.org/news/17435</guid>
      <link>http://www.phpdeveloper.org/news/17435</link>
      <description><![CDATA[<p>
In <a href="http://codeutopia.net/blog/2012/01/21/why-does-everything-need-to-be-integrated-into-a-framework/">this new post</a> to his blog <i>Jani Hartikainen</i> wonders if "everything needs to be integrated into a framework".
</p>
<blockquote>
There is occasionally people asking about things such as "Is there an integration for X in framework Y?" Then they are disappointed when it isn't, acting as if it's a really bad thing. But why do things need to be integrated to begin with?
</blockquote>
<p>
He points out that other frameworks (ex. Ruby on Rails) have a lot of things integrated, but he doesn't agree that this should be the standard. He suggests that, by not having tools that are tightly coupled with the framework you're using, you open yourself up to a wider, possibly better range of external tools. 
</p>
<blockquote>
One could argue that integrated libraries give you a productivity boost. While it may be so, I think the main boost you get is the very first steps: It's easier to get started, but after that the benefit fades. In the long run, it may even turn into a poor investment in general, as you could have learned a general purpose tool instead.
</blockquote>]]></description>
      <pubDate>Mon, 23 Jan 2012 13:04:22 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Zend Framework from Scratch - Models and Integrating Doctrine ORM]]></title>
      <guid>http://www.phpdeveloper.org/news/17390</guid>
      <link>http://www.phpdeveloper.org/news/17390</link>
      <description><![CDATA[<p>
NetTuts.com has posted a second tutorial in their series focusing on the Zend Framework today. In <a href="http://net.tutsplus.com/tutorials/php/zend-framework-from-scratch-models-and-integrating-doctrine-orm/">this latest article</a> they focus on integrating the powerful <a href="http://doctrine-project.org">Doctrine</a> ORM with a Zend Framework application.
</p>
<blockquote>
Ready to take your PHP skills to the next level? In this new "From Scratch" series, we'll focus exclusively on <a href="http://framework.zend.com/">Zend Framework</a>, a full-stack PHP framework created by Zend Technologies. This second tutorial on our series is entitled "Models and Integrating Doctrine ORM".
</blockquote>
<p>
They continue on from their <a href="http://net.tutsplus.com/tutorials/php/zend-framework-from-scratch/">previous tutorial</a> to talk about what models are (with an example involving "bankers"). They also show how to use the Zend Framework "zf" command line tool to configure your database settings, set up the tables and download/bootstrap the Doctrine code. The include the code to create some simple models and how to use them to create and update records in your database. You can grab all of the sample code for their examples from <a href="https://github.com/nikkobautista/The-Next-Social">The Next Social's github repository</a>.
</p>]]></description>
      <pubDate>Fri, 13 Jan 2012 10:58:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Richard Miller's Blog: Symfony2: Integrating elasticsearch]]></title>
      <guid>http://www.phpdeveloper.org/news/17177</guid>
      <link>http://www.phpdeveloper.org/news/17177</link>
      <description><![CDATA[<p>
<i>Richard Miller</i> has been posting a series of articles to his blog recently that look at integrating the <a href="http://www.elasticsearch.org/">ElasticSearch</a> tool with a <a href="http://symfony.com/">Symfony2</a>-based application.
</p>
<blockquote>
Elasticsearch is built on top of Lucene and indexes data as JSON documents in a similar way to the way MongoDB stores data. This means as with Mongo that it is schemaless and creates fields on the fly. It is queried over HTTP using queries which are themselves defined in JSON. [...] What I want to do is look at how you can avoid having to deal with issuing JSON queries over HTTP from a Symfony2 app and actually get started using elasticsearch in a very simple way.
</blockquote>
<p>
He uses the <a href="https://github.com/ruflin/Elastica">Elastica</a> PHP library to do some of the "heavy lifting" in the three posts so far:
</p>
<ul>
<li><a href="http://miller.limethinking.co.uk/2011/11/11/symfony2-integrating-elasticsearch/">Symfony2: Integrating elasticsearch</a>
<li><a href="http://miller.limethinking.co.uk/2011/11/18/symfony2-improving-elasticsearch-results/">Symfony2: improving elasticsearch results</a>
<li><a href="http://miller.limethinking.co.uk/2011/11/23/symfony2-elasticsearch-analyzers/">Symfony2: elasticsearch custom analyzers</a>
</ul>]]></description>
      <pubDate>Mon, 28 Nov 2011 11:40:06 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Integrating Amazon S3 using PEAR]]></title>
      <guid>http://www.phpdeveloper.org/news/16997</guid>
      <link>http://www.phpdeveloper.org/news/16997</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new tutorial showing you how to <a href="http://phpmaster.com/integrating-amazon-s3-using-pear/">integrate Amazon's S3 service</a> with your application via the <a href="http://pear.php.net/package/Services_Amazon_S3">Services_Amazon_S3</a> PEAR package.
</p>
<blockquote>
 In the process of reviewing documentation for Orchestra.io, I found that it <a href="http://docs.orchestra.io/kb/system-constraints/system-constraints#file-uploads-hosting">doesn't allow file uploads</a>. Instead, it's recommended that <a href="http://aws.amazon.com/s3/">Amazon S3</a> be used for file hosting. If you aren't familiar with it, S3 is an online storage web service that is part of Amazon Web Services (AWS). It provides access to fairly cheap storage through a variety of web service interfaces. This article will demonstrate how to sign up for an Amazon S3 account and use PEAR's Services_Amazon_S3 package to interact with S3 in your own application.
</blockquote>
<p>
They walk you through the whole process - getting signed up at <a href="http://aws.amazon.com/s3/">the AWS site</a>, creating credentials, installing the <a href="http://pear.php.net/package/Services_Amazon_S3">Services_Amazon_S3</a> package (via the PEAR installer) and using it in some sample scripts.
</p>]]></description>
      <pubDate>Mon, 17 Oct 2011 08:34:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Liip Blog: Integrating Magento into Symfony2]]></title>
      <guid>http://www.phpdeveloper.org/news/16895</guid>
      <link>http://www.phpdeveloper.org/news/16895</link>
      <description><![CDATA[<p>
On the Liip blog today, there's a quick post about <a href="http://blog.liip.ch/archive/2011/09/21/integrating-magento-into-symfony2.html">integrating Symfony2 and Magento</a>, the popular PHP-based ecommerce platform.
</p>
<blockquote>
So last week <a href="https://github.com/liip/LiipMagentoBundle/contributors">four developers</a> sat together on a regular Hackday to see what's needed to hook up Magento into Symfony. To make this short the outcome is a <a href="https://github.com/liip/LiipMagentoBundle">Magento bundle for Symfony2</a>. When we met in the morning we weren't even sure what exactly to try out but soon agreed on implementing a Symfony authentication which uses the Magento customer database.
</blockquote>
<p>
The post talks about some of the issues they came across in their work - mainly a problem with incompatible autoloaders. There were also problems getting the logins to play nicely with each other and each product's session handling. You can find the current results from their hacking in <a href="https://github.com/liip/LiipMagentoBundle">this bundle</a> posted to github.
</p>]]></description>
      <pubDate>Thu, 22 Sep 2011 12:47:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Phil Sturgeon's Blog: NinjAuth: The Social Integration Package PHP has been dying for]]></title>
      <guid>http://www.phpdeveloper.org/news/16872</guid>
      <link>http://www.phpdeveloper.org/news/16872</link>
      <description><![CDATA[<p>
New on his blog <i>Phil Sturgeon</i> has a post about the <a href="http://philsturgeon.co.uk/blog/2011/09/ninjauth-social-integration-php">social integration package PHP has been dying for</a> - <a href="https://github.com/philsturgeon/fuel-ninjauth">NinjAuth</a>. It has hooks for OAuth and OAuth2 connections and makes it simple to use them completely abstracted.
</p>
<blockquote>
In the past I have never needed to implement oAuth into a PHP project. I have done it in Rails and boy it was easy thanks to OmniAuth. <a href="https://github.com/intridea/omniauth">OmniAuth</a> abstracts away so much of the grunt work that it takes about 5 minutes to add a new social network to your site, and 4 of those minutes are spent signing up for the API keys. What options do we have in the world of PHP? A bunch of screwy hacks or provider specific classes like TwitterOAuth. I don't want to hunt down 20 libraries with different methods, I want to get a key, bang it in and go to the pub. Well, now I can!
</blockquote>
<p>
The <a href="https://github.com/philsturgeon/fuel-ninjauth>NinjaAuth</a> system allows a user to have multiple "authentications" groups under it corresponding to various social networking sites. It uses the <a href="https://github.com/fuel-packages/fuel-oauth">fuel-oauth</a> and <a href="https://github.com/fuel-packages/fuel-oauth2">fuel-oauth2</a> packages to drive its backend. He includes <a href="http://philsturgeon.co.uk/blog/2011/09/ninjauth-social-integration-php">a code snippet</a> showing how to configure the providers (complete with keys needed for auth) including Facebook, Flickr, GitHub, YouTube and - of course - Twitter. You can grab the latest version of this library from <a href="https://github.com/philsturgeon/fuel-ninjauth">Phil's github account</a>.
</p>]]></description>
      <pubDate>Mon, 19 Sep 2011 08:59:31 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Alessandro Nadalin's Blog: Behaviour what?]]></title>
      <guid>http://www.phpdeveloper.org/news/16789</guid>
      <link>http://www.phpdeveloper.org/news/16789</link>
      <description><![CDATA[<p>
In a recent post to his blog <i>Alessandro Nadalin</i> looks at a <a href="http://www.odino.org/378/behaviour-driven-development-in-php">different approach to development</a> than the usual code-first, ask questions later style, behavior-driven development, and a tool that can help you follow this method - <a href="http://behat.org">Behat</a>.
</p>
<blockquote>
Although this requirement is not mandatory, BDD's power is leveraged by using stories. It basically assumes that instead of focusing on tests, we should start our development process writing down a story that a parser can translate into a test (a customer cares about features, not tests) a programmer can implement in order to verify that our software respects that story.
</blockquote>
<p>
He talks about installing Behat <a href="http://pear.behat.org/">via PEAR</a>, how it can integrate with Symfony (1.4) and an example of a sample story/test file that checks a few things against a basic page. He also points out an interesting and quite useful feature of Behat - outputting the tests in a HTML-formatted result that makes for easy reading by non-developers.
</p>]]></description>
      <pubDate>Tue, 30 Aug 2011 09:22:15 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Project: Mink library integration bundle for Symfony2 (for Behat)]]></title>
      <guid>http://www.phpdeveloper.org/news/16231</guid>
      <link>http://www.phpdeveloper.org/news/16231</link>
      <description><![CDATA[<p>
<i>Konstantin Kudryashov</i> has linked to a new tool that's adds BehatMink browser abstraction library for your Symfony2 project as a part of the <a href="http://behat.org">Behat</a> project (a BDD testing tool for PHP).
</p>
<blockquote>
You can now test your Symfony2 applications with PHPUnit and Mink, thanks to brand new MinkBundle.
</blockquote>
<p>
This new tool provides a clean API, support for Symfony2's test.client browser emulator and support for the Goutte and Sahi browser emulators as well. In <a href="https://github.com/Behat/MinkBundle#readme">the README</a> on it's github page, they've provided some sample code snippets that show how to register the namespaces, add it to your application kernel/add the config, enable the GoutteDriver and SahiDriver and, of course, write a first test.
</p>]]></description>
      <pubDate>Thu, 21 Apr 2011 11:44:02 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Episode 39: "Continuous Inspection and Integration of PHP Projects"]]></title>
      <guid>http://www.phpdeveloper.org/news/15949</guid>
      <link>http://www.phpdeveloper.org/news/15949</link>
      <description><![CDATA[<p>
On the Zend Developer Zone <i>Kevin Schroeder</i> has published the latest episode of the ZendCon Sessions series of podcasts (as recorded at the 2010 <a href="http://zendcon.com">Zend/PHP Conference</a>). The episode is <i>Sebastian Bergmann</i>'s talk on <a href="http://devzone.zend.com/article/13062-ZendCon-Sessions-Episode-039-Continuous-Inspection-and-Integration-of-PHP-Projects">continuous inspection and integration</a> in PHP projects.
</p>
<blockquote>
The <a href="http://devzone.zend.com/podcasts/zendconsessions">ZendCon Sessions</a> are live recordings of sessions that have been given at previous Zend Conferences. Combined with the slides, they can be the next best thing to having attended the conference itself. [...] This episode of The ZendCon Sessions was recorded live at <a href="http://zendcon.com/">ZendCon 2010</a> in Santa Clara, CA and features Sebastian Bergmann giving his talk: "Continuous Inspection and Integration of PHP Projects" 
</blockquote>
<p>
You can either listen via the <a href="http://devzone.zend.com/article/13062-ZendCon-Sessions-Episode-039-Continuous-Inspection-and-Integration-of-PHP-Projects">in-page player</a> or by <a href="http://devzone.zend.com/content/audio/zendcon_sessions/zendcon_sessions_podcast_039.mp3">downloading the mp3</a>. His slides have also been <a href="http://www.slideshare.net/sebastian_bergmann/continuous-integration-of-php-projects-5660554">posted to Slideshare</a> so you can follow along.
</p>]]></description>
      <pubDate>Wed, 23 Feb 2011 10:47:50 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Sebastian Bergmann's Blog: Template for Jenkins Jobs for PHP Projects]]></title>
      <guid>http://www.phpdeveloper.org/news/15860</guid>
      <link>http://www.phpdeveloper.org/news/15860</link>
      <description><![CDATA[<p>
<i>Sebastian Bergmann</i> has a new post to his blog today talking about the <a href="http://sebastian-bergmann.de/archives/907-Template-for-Jenkins-Jobs-for-PHP-Projects.html">Jenkins template</a> he's put together to help PHP projects get started quickly with the <a href="http://jenkins-ci.org/">popular continuous integration tool</a> (formerly Hudson).
</p>
<blockquote>
Most web applications are changed and adapted quite frequently and quickly. Their environment, for example the size and the behaviour of the user base, are constantly changing. What was sufficient yesterday can be insufficient today. Especially in a web environment it is important to monitor and continuously improve the internal quality not only when developing, but also when maintaining the software.
</blockquote>
<p>
The <a href="http://jenkins-php.org/">Template for Jenkins</a> project gives you a standard template to build off of when setting up your environment. It includes links to the required plugins, the needed PHP tools (installed via PEAR) and the build configuration files. At the end, there's also a bit on how to get it all installed and configured. There's even a few screenshots to help you be sure things look okay.
</p>]]></description>
      <pubDate>Fri, 04 Feb 2011 12:09:25 -0600</pubDate>
    </item>
  </channel>
</rss>

