<?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 07:59:41 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Anna Filina: Define: Functional, Unit and Integration Tests]]></title>
      <guid>http://www.phpdeveloper.org/news/19429</guid>
      <link>http://www.phpdeveloper.org/news/19429</link>
      <description><![CDATA[<p>
<i>Anna Filina</i> has a new post to her site that helps to clarify the definitions between <a href="http://annafilina.com/blog/functional-unit-and-integration-tests/">functional, unit and integrations tests</a> of your application's functionality.
</p>
<blockquote>
I have recently read a blog post claiming that functional tests are not "true" tests. The author also claims that unit testing shows you where the problem is occurring, while functional testing simply identifies that a problem exists. This argument is deceptive and the conclusion dangerous. Different kinds of tests are not mutually exclusive. One is not superior to the other. They have different goals and can happily coexist. Let me explain the kinds of tests so that you could make enlightened decisions.
</blockquote>
<p>
She covers each type of test in detail, noting the goal of that particular type and some examples of the kinds of things they might test. She starts with the highest level, functional testing, then jumps down to the lowest - unit testing. She finishes up the post defining "integration tests" as tests that ensure you're integrating correctly - that you're using the API provided by the tool in the right way and that it's working as expected.
</p>
Link: http://annafilina.com/blog/functional-unit-and-integration-tests]]></description>
      <pubDate>Mon, 08 Apr 2013 14:45:46 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Luis Atencio: Notes on Continuous Delivery - Continuous Integration]]></title>
      <guid>http://www.phpdeveloper.org/news/19367</guid>
      <link>http://www.phpdeveloper.org/news/19367</link>
      <description><![CDATA[<p>
<i>Luis Atencio</i> has posted the <a href="http://www.luisatencio.net/2013/03/notes-on-continuous-delivery-continuous.html">third part of his continuous delivery series</a> (parts <a href="http://phpdeveloper.org/news/19144">one</a> and <a href="http://phpdeveloper.org/news/19240">two</a>), this time with a focus on continuous integration as a part of the process.
</p>
<blockquote>
This is a continuation from my previous post and overall the series on Continuous Delivery. If you haven't been following, that's okay, every topic is self-contained, so read along. The contents of these posts are taken from the book titled "Continuous Delivery" by Humble and Farley (resources below) overlaid with my own professional experience. In this article, we talk a bit more about Continuous Integration (CI) and some practices developers should follow to ensure a smooth environment.
</blockquote>
<p>
He talks some about what "continuous integration" is and how much it relies on an automation of the process around your delivery of software. He mentions integration of testing (unit/acceptance/integration) and how it can help discover issues early. He includes a list of essential practices that come along with the idea of CI integration including:
</p>
<ul>
<li>Don't check in on a broken build
<li>Keep a stable build at all times
<li>Anticipate being able to revert your changes
<li>Using TDD
<li>Distributed Version Control
</ul>
<p>
He also recommends using any downtime (like waiting on a build to "go green" again) to take a few minutes away from the code - it can benefit you and your code.
</p>]]></description>
      <pubDate>Tue, 26 Mar 2013 12:20:31 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[System Architect: Integrate PHP application with Solr search engine]]></title>
      <guid>http://www.phpdeveloper.org/news/19303</guid>
      <link>http://www.phpdeveloper.org/news/19303</link>
      <description><![CDATA[<p>
On the "System Architect" site there's a recent post showing you how to <a href="http://systemsarchitect.net/integrate-php-application-with-solr-search-engine/">integrate PHP and Solr</a>, the searching tool from the Apache project.
</p>
<blockquote>
So why do you need a search engine, is database not enough? If you create a small website it might not matter. With medium or big size applications it's often wiser to go for a search engine. Saying that, even a small websites can benefit from Solr if you desire a high level of relevance in search results.
</blockquote>
<p>
Their example involves an ecommerce website and a search for a term (iPhones) and how difficult it could be to match against the possible multiple variations on the models. Solr makes this kind of searching easier. He shows you how to get a Solr instance all set up and configured as well as the PHP PECL extension from <a href="https://github.com/lukaszkujawa/php-pecl-solr.git">here</a>. A sample PHP script is also included showing connecting to Solr, inserting a new document and searching for a simple query of "hello". 
</p>]]></description>
      <pubDate>Tue, 12 Mar 2013 12:01:43 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DPCRadio: Episode #2012-16 - Travis CI - Distributed CI for the Masses]]></title>
      <guid>http://www.phpdeveloper.org/news/18781</guid>
      <link>http://www.phpdeveloper.org/news/18781</link>
      <description><![CDATA[<p>
DPCRadio (recordings of the sessions at this year's Dutch PHP Conference) has posted its latest episode - a recording of <i>Josh Kalderimis</i>' talk <a href="http://blog.ibuildings.com/2012/11/19/dpcradio-travis-ci-distributed-ci-for-the-masses/">Travis CI - Distributed CI for the Masses!</a>.
</p>
<blockquote>
Continuous Integration has typically been a practice only performed by companies who want that piece of mind for their client software, but does it need to be like this? Travis CI is a continuous integration service for the open source community. We make testing OS projects dead simple and fun. But most importantly, we help improve code quality for large projects like Doctrine2 and symfony, to smaller libraries like FOSRest. The vision behind Travis CI is to become for builds what PEAR is for distributing libraries. In this talk Josh, one of the core members of the Travis CI team, will introduce you to the vision behind Travis, the how it is implemented, and why it matters to everyone in the OS community.
</blockquote>
<p>
You can listen to this latest episode either by <a href="http://blog.ibuildings.com/2012/11/19/dpcradio-travis-ci-distributed-ci-for-the-masses/">using the in-page player</a> or by <a href="http://dpcradio.s3.amazonaws.com/2012_016.mp3">downloading the mp3</a>. You can also <a href="https://itunes.apple.com/nl/podcast/dpc-radio/id568825964">subscribe to this podcast</a>.
</p>]]></description>
      <pubDate>Wed, 21 Nov 2012 09:36:12 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: Make PHP-Based Android Applications with Zend Studio 10]]></title>
      <guid>http://www.phpdeveloper.org/news/18653</guid>
      <link>http://www.phpdeveloper.org/news/18653</link>
      <description><![CDATA[<p>
At this year's <a href="http://zendcon.com">ZendCon conference</a> a new technology was introduced (well, and upgrade to an existing product) that allows PHP developers to <a href="http://yourstory.in/2012/10/now-php-developers-can-build-android-apps-using-zend-studio-10/">create Android applications from Zend Studio 10</a>.
</p>
<blockquote>
ZendCon, the annual trade show for Zend, the PHP company, announced that Zend Studio 10 (Zend's IDE) will include functionalities that will let PHP developers prototype and build native mobile apps using PHP. The new capability includes a drag-and-drop mobile interface builder, integration with the Apache project's Cordova to access native mobile APIs such as those for cameras and accelerometers, and built-in PhoneGap integration for developers to publish native app packages to the various app stores.
</blockquote>
<p>
You can see an example of the software in action <a href="http://youtu.be/d7u2CYVUucY">here</a> (video) and get a bit more information about the offering from <a href="http://venturebeat.com/2012/10/23/huge-news-php-developers-can-now-design-build-and-publish-mobile-apps-right-in-zend-studio/">this article from VentureBeat</a>.
</p>]]></description>
      <pubDate>Wed, 24 Oct 2012 11:54:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Reddit.com: PHP and Continuous Integration]]></title>
      <guid>http://www.phpdeveloper.org/news/18532</guid>
      <link>http://www.phpdeveloper.org/news/18532</link>
      <description><![CDATA[<p>
On Reddit.com there's <a href="http://www.reddit.com/r/PHP/comments/10kfku/php_and_continuous_integration/">a recent post</a> answering a question asked about PHP and continuous integration during a project's development.
</p>
<blockquote>
Does anyone have experience with PHP and Continuous Integration? If so, what tools and / or platforms did you use?
</blockquote>
<p>Suggestions in the comments include:</p>
<ul>
<lI><a href="http://codeception.com/">Codeception</a> for unit testing
<li>the Jenkins <a href="http://jenkins-php.org/">PHP template</a>
<li>Atlassian <a href="http://www.atlassian.com/software/bamboo/overview">Bamboo</a>
<li><a href="http://book.cakephp.org/2.0/en/development/testing.html#integration-with-jenkins">Jenkins</a>
<li><a href="http://travis-ci.org/">Travis-CI</a> (more for open source projects)
</ul>]]></description>
      <pubDate>Fri, 28 Sep 2012 10:23:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jeune Asuncion: ZF1.11 + Doctrine 2 + Symfony DI Integration]]></title>
      <guid>http://www.phpdeveloper.org/news/18391</guid>
      <link>http://www.phpdeveloper.org/news/18391</link>
      <description><![CDATA[<p>
In <a href="http://jeunito.me/zf1-11-doctrine-2-symfony-di-integration/">this new post</a> to his site <i>Jeune Asuncion</i> shows how he integrated several technologies to make for a robust system - Zend Framework (1.11), Doctrine 2 and the Symfony dependency injection system.
</p>
<blockquote>
Last week, <a href="http://jeunito.me/choosing-a-new-framework/">I blogged about looking for a new application framework</a> to use and more importantly the key things that I would want in one. After reading about the <a href="http://framework.zend.com/">Zend framework</a>, <a href="http://jeunito.me/zf1-11-doctrine-2-symfony-di-integration/www.symfony-project.org/">Symfony</a> and <a href="http://jeunito.me/zf1-11-doctrine-2-symfony-di-integration/laravel.com/">Laravel</a> and finding myself hesitant to use any one, I thought to myself why not get the best of each framework? So that's what I did.
</blockquote>
<p>
He shows a bit of the code to get them to all play nicely together using the Zend autoloader to register the other namespaces and creating a Symfony DI container inside of the ZF Bootstrap and providing it as a resource. You can find more of the source involved in the integration <a href="https://github.com/jeunito/zf-doctrine2-symfonydi">on his github account</a>.
</p>]]></description>
      <pubDate>Wed, 22 Aug 2012 11:09:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Till Klampaeckel: Continuous Integration: Automated database setup with Doctrine on Travis-CI]]></title>
      <guid>http://www.phpdeveloper.org/news/18357</guid>
      <link>http://www.phpdeveloper.org/news/18357</link>
      <description><![CDATA[<p>
<i>Till Klampaeckel</i> has a new post to his site showing how you can use the external continuous integration system <a href="http://travis-ci.org/">Travis-CI</a> to handle <a href="http://till.klampaeckel.de/blog/archives/192-Continuous-Integration-Automated-database-setup-with-Doctrine-on-Travis-CI.html">automated database testing</a> for your PHP app using Doctrine.
</p>
<blockquote>
Testing is important - most people understand that by now. A lot of people write tests for their open source code already, but in-house testing is still hard. [...] While I prefer to run my database tests against a SQLite in memory database, there are these edge cases, where I work with multiple database or I write a direct query (and by-pass the ORM-magic). In these cases I need to have that database server available in my test environment! The following blog posts explains how to solve these things with Travis-CI. I will walk you through the setup on Travis-CI's business service. But most of this applies to their open source offering as well.
</blockquote>
<p>
He's broken it up into a few different steps - the setup and configuration of the ".travis.yml" file, adding in a "composer.json" file with the needed dependencies and the recommendation of a "phpunit.xml" in your project's root. He shows how to use Doctrine's "SchemaTool" utility to generate his schema off of the comments on his entities (instead of checking in SQL). This setup them gives him access to Doctrine's EntityManager object in his tests and he can go from there. If you're thinking about doing something similar, check Travis' <a href="http://about.travis-ci.org/docs/user/database-setup/">list of supported databases</a> before you do anything, just to be sure.
</p>]]></description>
      <pubDate>Tue, 14 Aug 2012 10:55:57 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[TrueLogic.org: Integrate the Mailchimp API with your PHP application]]></title>
      <guid>http://www.phpdeveloper.org/news/18289</guid>
      <link>http://www.phpdeveloper.org/news/18289</link>
      <description><![CDATA[<p>
In <a href="http://truelogic.org/wordpress/2012/07/28/integrate-the-mailchimp-api-with-your-php-application/">this new tutorial</a> to the TrueLogic.org site, they show you how to use the Mailchimp (using a library) from your application.
</p>
<blockquote>
For those unfamiliar with Mailchimp it is an online service for handling subscribers and newsletters. It is mainly used to handle subscription lists and sending newsletters via its Mailchimp API which has wrappers and integration features for various languages/platforms. [...] In this article we will take a quick look at how to integrate this with your PHP application. If you want a detailed reference on integration then its better to look at the official API documentation. Here, we just want to give a simple and practical explanation on how to go about it.
</blockquote>
<p>
Once you've <a href="http://kb.mailchimp.com/article/where-can-i-find-my-api-key/">gotten an API key</a>, you can follow along with the tutorial. They show you how to subscribe to lists, create campaigns, unsubscribe from a list and delete a campaign.
</p>]]></description>
      <pubDate>Mon, 30 Jul 2012 11:17:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[We Love PHP Blog: Using V8 Javascript engine as a PHP extension]]></title>
      <guid>http://www.phpdeveloper.org/news/18272</guid>
      <link>http://www.phpdeveloper.org/news/18272</link>
      <description><![CDATA[<p>
From the "Web Love PHP" blog there's <a href="http://we-love-php.blogspot.de/2012/07/using-v8-javascript-engine-as-php.html">a new post</a> showing how to use the V8 Javascript engine as a PHP extension in your application.
</p>
<blockquote>
Just got to something described as: This extension embeds the <a href="http://en.wikipedia.org/wiki/V8_%28JavaScript_engine%29">V8 Javascript Engine</a> into PHP. It is called v8js and the documentation is already available on <a href="http://php.net/manual/en/book.v8js.php">php.net</a>, examples and the sources are <a href="https://github.com/preillyme/v8js/tree/master/samples">here</a>. V8 is known to work well in browsers and webservers like node.js, but does it work inside PHP? YES!
</blockquote>
<p>
They show how to get it installed (on Ubuntu) via a PECL install and a test script with some Javascript in a string variable that's parsed by the "executeString" function on a V8 object. There's also an example of how you can mix the functionality between the two - a simple script that uses a PHP PDO object fron inside the Javascript to perform a SQL query and set some information into the session.
</p>]]></description>
      <pubDate>Wed, 25 Jul 2012 11:50:36 -0500</pubDate>
    </item>
  </channel>
</rss>
