<?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>Sat, 25 May 2013 06:30:45 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPBuilder.com: Oauth Authentication for Social Apps in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19155</guid>
      <link>http://www.phpdeveloper.org/news/19155</link>
      <description><![CDATA[<p>
On PHPBuilder.com today there's a tutorial <a href="http://www.phpbuilder.com/articles/application-architecture/miscellaneous/oauth-authentication-for-social-apps-in-php.html">introducing you to OAuth</a> and how to use it in your PHP applications.
</p>
<blockquote>
Oauth is an open standard for authorization that allows secure authorization from web, mobile and desktop applications. This standard allows a third-party application to gain access to a HTTP service, i.e. it enables users to share their resources from one website with another website without having to give out their credentials (usually username and password). [...] Oauth authorization is carried out in 3 steps: obtain a request token, authorize request token and exchange request token for an access token.
</blockquote>
<p>
They introduce you to some of the basic concepts behind OAuth and how the process works (complete with a <a href="http://www.phpbuilder.com/imagesvr_ce/2463/Oauth-image001.png">handy graphic</a>). They then show how to use OAuth to connect to the Facebook API, both in Javascript then PHP. This is followed with two other examples referencing popular social sites Twitter and Foursquare, hitting their APIs with simple authentication requests.
</p>]]></description>
      <pubDate>Fri, 08 Feb 2013 10:27:18 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Gonzalo Ayuso: How to configure Symfony's Service Container to use Twitter API]]></title>
      <guid>http://www.phpdeveloper.org/news/19136</guid>
      <link>http://www.phpdeveloper.org/news/19136</link>
      <description><![CDATA[<p>
In <a href="http://gonzalo123.com/2013/02/04/how-to-configure-symfonys-service-container-to-use-twitter-api/">this recent post</a> to his site <i>Gonzalo Ayuso</i> shows how to use the Symfony2 service container to interact directly with the Twitter API via an OAuth plugin.
</p>
<blockquote>
If we are working within a Symfony2 application or a PHP application that uses the Symfony's Dependency injection container component you can easily integrate this simple script in the service container. I will show you the way that I use to do it. 
</blockquote>
<p>
His sample code uses the <a href="http://guzzlephp.org/">Guzzle</a> HTTP library and some configuration options from a YAML file to create a new service hooked into the Twitter API with his credentials. He then imports it via his services configuration and shows an example of it in action - getting the latest contents of his timeline.
</p>]]></description>
      <pubDate>Tue, 05 Feb 2013 10:53:19 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell: How NOT to Design Your API]]></title>
      <guid>http://www.phpdeveloper.org/news/19019</guid>
      <link>http://www.phpdeveloper.org/news/19019</link>
      <description><![CDATA[<p>
Recently <i>Lorna Mitchell</i> asked the wide world of Twitter about some of their recommendations of things <b>not</b> to do when creating an API. In <a href="http://www.lornajane.net/posts/2013/how-not-to-design-your-api">this new post</a> to her site, she gathers together those responses including comments about documentation, consistency and response codes.
</p>
<blockquote>
Recently I tweeted as a <a href="http://linktuesday.com/">#linktuesday</a> link the <a href="http://blog.programmableweb.com/2012/08/03/top-10-api-worst-practices/">10 Worst API Practices post from ProgrammableWeb</a>. Today, in search of some concrete examples of APIs implementing unhelpful antipatterns, I sent out a tweet for help: "What's the most frustrating inconsistent/misleading bit of API you've seen? Looking for cautionary tales!" [...] In the raft of responses (and thankyou all, this was fabulous, helpful and entertaining in equal parts!), there were some definite patterns that I'd like to share with you, in no particular order.
</blockquote>
<p>Comments came in from all over and talked about things like:</p>
<ul>
<li>Response codes not matching the content (ex. 200 on an error)
<li>NullPointerExceptions
<li>Different endpoints for single vs collections
<li>Order-sensitive XML in requests
<li>Poor error handling
<li>Bad documentation
<li>Incorrect content type handling
</ul>
<blockquote>
So there you have it, the sins to avoid in your own APIs. If you've encountered any of these, please accept my condolences.
</blockquote>]]></description>
      <pubDate>Thu, 10 Jan 2013 10:46:04 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[ScreenFony.com: Work with bootstrap, assetic and less]]></title>
      <guid>http://www.phpdeveloper.org/news/18516</guid>
      <link>http://www.phpdeveloper.org/news/18516</link>
      <description><![CDATA[<p>
On the ScreenFony.com site there's a quick tutorial showing you how to <a href="http://www.screenfony.com/blog/howto-symfony-bootstrap-assetic-less">get started with Symfony2+Twitter Bootstrap+Assetic+LESS</a> in a basic application. <a href="https://github.com/kriswallsmith/assetic">Assetic</a> is a library that helps with asset management and use and <a href="http://lesscss.org/">LESS</a> is a CSS pre-processor that makes it simpler to work with your site's CSS.
</p>
<blockquote>
Bootstrap is a well known and powerful front-end framework for fast prototyping, it uses LESS and it can be easily integrate in your Symfony applications with the help of assetic. In this post I'll show how to: Install bootstrap in you Symfony application, load it using assetic, and compile bootstrap LESS files with lessphp.
</blockquote>
<p>
Using Composer, creating a new Symfony2 project is just a single command away. The just update the "composer.json" and run the install to get the other needed libraries (LESS and the Twitter Bootstrap). They help you set up some Assetic filters for LESS and provide a simple page to output the Bootstrap in your header.
</p>]]></description>
      <pubDate>Tue, 25 Sep 2012 10:36:20 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Emanuele Minotto: PHP in a Tweet]]></title>
      <guid>http://www.phpdeveloper.org/news/18479</guid>
      <link>http://www.phpdeveloper.org/news/18479</link>
      <description><![CDATA[<p>
<i>Emanuele Minotto</i> has a recent post with a set of <a href="http://emanueleminotto.wordpress.com/2012/09/13/php-in-a-tweet/">"PHP in a tweet" posts</a> that do all sorts of things.
</p>
<blockquote>
Yesterday an ex colleague tweeted something that captured my attention, so I started thinking to a Twitter-powered <a href="http://en.wikipedia.org/wiki/Code_golf">code golf</a>ing competition. Looking for other examples.
</blockquote>
<p>Tweets included in the list are snippets like:</p>
<ul>
<li>A dependency injection container
<li>A super simple web framework
<li>A microframework
<li>Bypassing <a href="http://php.net/array_intersect">array_intersect</a>
</ul>
<p>
There's some <a href="http://emanueleminotto.wordpress.com/2012/09/13/php-in-a-tweet/">game rules</a> included in the post so you can contribute your own to the <A href="http://emanueleminotto.wordpress.com/2012/09/13/php-in-a-tweet/#comments">the comments</a>. Several have already been added including a base64 encoding variant and getting the extension of a file.
</p>]]></description>
      <pubDate>Fri, 14 Sep 2012 10:19:09 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Matt Cockayne: Bootstrapping ZF2 Forms]]></title>
      <guid>http://www.phpdeveloper.org/news/18260</guid>
      <link>http://www.phpdeveloper.org/news/18260</link>
      <description><![CDATA[<p>
In <a href="http://devincharge.com/bootstrapping-zf2-forms/">this recent post</a> to his site, <i>Matt Cockayne</i> shows you how to bootstrap your forms in a Zend Framework 2 application (as defined in a class).
</p>
<blockquote>
A brand spanking new Forms component has been rolled out with <a href="https://github.com/zendframework/zf2">ZF2</a>. The long and the short of this new component meant that I had the opportunity to hand roll a new way of making my forms work with <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>. So, a little tinkering, a quick <a href="https://github.com/zendframework/zf2/pull/1893">pull request</a> to <a href="https://github.com/zendframework/zf2">ZF2</a> to allow the definition of arbitrary options and I <a href="https://github.com/zucchi/Zucchi/tree/master/src/Zucchi/Form/View/Helper">came up with some useful View Helpers</a> that can be dropped into a project and used.
</blockquote>
<p>
He includes the code for the sample class ("MyForm") and highlights the "bootstrap" portions of each element's configuration and walks you through some other handy features of his helpers: auto-rendering forms, a "row" helper and a "collection" helper to help organize the form structure.
</p>]]></description>
      <pubDate>Mon, 23 Jul 2012 11:07:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: Win a phpDay/jsDay 2012 Ticket]]></title>
      <guid>http://www.phpdeveloper.org/news/17750</guid>
      <link>http://www.phpdeveloper.org/news/17750</link>
      <description><![CDATA[<p>
The <a href="http://2012.jsday.it">jsDay/<a href="http://2012.phpday.it">phpDay</a> organizers have <a href="http://2012.jsday.it/2012/03/win-a-jsday-or-phpday-ticket/">announced a contest to win a free ticket</a> to this year's event(s), one for each conference:
</p>
<blockquote>
GrUSP is organising a tweet contest and its prizes will be two tickets, one for each conference. The contest will start today (March 29th) at 1pm CEST and will end April 1st at 7pm CEST.
</blockquote>
<p>
Anyone can enter - all you have to do is tweet a post with a few things: the "#grsup" hashtag, a mention of the twitter accounts for the events, a link to the conference site and something about the event. Be sure and get those tweets posted before April 1st a 9am CEST - they'll pick the winners soon after! (Oh and multiple entries are accepted so the more you tweet, the better your chances!)
</p>]]></description>
      <pubDate>Thu, 29 Mar 2012 10:20:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[ServerGrove Blog: Error "Cannot find module 'less'" with Symfony2, Assetic and Twitter Bootstrap]]></title>
      <guid>http://www.phpdeveloper.org/news/17692</guid>
      <link>http://www.phpdeveloper.org/news/17692</link>
      <description><![CDATA[<p>
On the ServerGrove blog, there's <a href="http://blog.servergrove.com/2012/03/16/error-cannot-find-module-less-with-symfony2-assetic-and-twitter-bootstrap/">a quick post</a> with a handy tip for the Symfony2 + Assetic users out there - how to get it to recognize the "less" module.
</p>
<blockquote>
Unfortunately the <a href="http://symfony.com/doc/current/cookbook/assetic/asset_management.html">Symfony documentation</a> does not provide any details on how to configure Assetic to use LESS. There is <a href="http://www.dobervich.com/2011/05/10/less-css-assetic-configuration-in-a-symfony2-project/">a blog post by Dustin Dobervich</a> that gives some pointers, but after following the instructions, Assetic issued the following error: Cannot find module 'less'. We searched around without much success. After several tries, we nailed the configuration.
</blockquote>
<p>
It's an easy two-step process: first you be sure you have "npm" (the package manager) installed on your system, then you modify your Symfony app.yml file to point to the Node modules path.
</p>]]></description>
      <pubDate>Mon, 19 Mar 2012 12:36:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: Packing more PHP News in your day with PHP Quick Fix]]></title>
      <guid>http://www.phpdeveloper.org/news/17224</guid>
      <link>http://www.phpdeveloper.org/news/17224</link>
      <description><![CDATA[<p>
If you're a regular reader of PHPDeveloper.org, you know that there's a few articles posted here (almost) daily about what's happening in the PHP world. Unfortunately, this only scratches the surface of the quality content that's out there. In an effort to provide more PHP goodness to the community as a whole, <a href="http://phpquickfix.me">PHP Quick Fix</a> has been launched - a service linking to stories that don't make it on PHPDeveloper.org.
</p>
<p>
All of the stories on <a href="http://phpquickfix.me">PHP Quick Fix</a> (you can <a href="http://twitter.com/phpquickfix">also follow it on twitter</a>) are still hand-selected out of the mounds of PHP content that shows every day to ensure the best quality. There's no automatic syndication here - just more good, useful PHP (and related topics) to add to your day.
</p>
<p>
Additionally, if you're interested to see how it all works (thanks to a <a href="http://gimmebar.com">GimmeBar</a> backend) check out <a href="http://blog.phpdeveloper.org/?p=413">this post</a> on blog.phpdeveloper.org.
</p>]]></description>
      <pubDate>Wed, 07 Dec 2011 11:35:53 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Kevin Schroeder's Blog: What programming rules should you ALWAYS follow?]]></title>
      <guid>http://www.phpdeveloper.org/news/17105</guid>
      <link>http://www.phpdeveloper.org/news/17105</link>
      <description><![CDATA[<p>
In a quick new post today <i>Kevin Schroeder</i> asks his readers for feedback on <a href="http://www.eschrade.com/page/what-programming-rules-should-you-always-follow">what programming rules you should always follow</a> in your development practices.
</p>
<blockquote>
Earlier today, more for my own interest, I asked the question on Twitter "What programming rules should you ALWAYS follow, regardless of the scenario you're working in?"  In other words, are there programming rules that you ALWAYS should follow.  It doesn't matter if it's a script to copy a bunch of files for a one time migration or if you're building the next Facebook (DON'T try to build the next Facebook.  You will fail miserably.  Build something else).  In other words, what was the purist of programming rules.
</blockquote>
<p>
Responses he received ranged from the simple to slightly more complex including:
</p>
<ul>
<li>Always comment your code
<li>Test your code
<li>Use source control
<li>"Think. Think again. Then write code"
<li>Use a good debugger to help track down problems
<li>Make effective use of logging/output
</ul>]]></description>
      <pubDate>Wed, 09 Nov 2011 09:20:37 -0600</pubDate>
    </item>
  </channel>
</rss>
