<?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>Wed, 19 Jun 2013 19:43:16 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Lukas Smith: What is needed to REST in Symfony2]]></title>
      <guid>http://www.phpdeveloper.org/news/19550</guid>
      <link>http://www.phpdeveloper.org/news/19550</link>
      <description><![CDATA[<p>
<i>Lukas Smith</i> has a new post to his site that asks the question "<a href="http://pooteeweet.org/blog/2221">what's needed to REST in Symfony 2?</a>" In it he talks about some of the current issues surrounding REST support in Symfony (bundles) and a "call to arms" to create something better.
</p>
<blockquote>
I think we already have quite a nice toolchain for REST in Symfony2 with Bundles like <a href="https://github.com/friendsOfSymfony/FOSRestBundle">FOSRestBundle</a>, <a href="http://github.com/schmittjoh/JMSSerializerBundle">JMSSerializerBundle</a>, <a href="https://github.com/nelmio/NelmioApiDocBundle">NelmioApiDocBundle</a>, <a href="https://github.com/TheFootballSocialClub/FSCHateoasBundle">FSCHateoasBundle</a> and <a href="https://github.com/hautelook/TemplatedUriBundle">HautelookTemplatedUriBundle</a>. What is great about these Bundles is that they are all nicely integrated with each other. But there are still some limitations which should be addressed.
</blockquote>
<p>
Some of the still outstanding issues he points out include issues with content-type and routing, dynamic content in the NelmioApi bundle, Behat context testing, JSONP support and more. He suggests gathering together a product backlog of these items and possibly making a kickstarter to fund its development.
</p>
Link: http://pooteeweet.org/blog/2221]]></description>
      <pubDate>Mon, 06 May 2013 10:24:05 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[William Durand: REST APIs with Symfony2: The Right Way]]></title>
      <guid>http://www.phpdeveloper.org/news/18312</guid>
      <link>http://www.phpdeveloper.org/news/18312</link>
      <description><![CDATA[<p>
In <a href="http://williamdurand.fr/2012/08/02/rest-apis-with-symfony2-the-right-way/">this new post</a> to his site <i>William Durand</i> looks at creating a RESTful API with the help of the <a href="http://symfony.com">Symfony2</a> framework.
</p>
<blockquote>
Designing a REST API is not easy. No, really! If you want to design an API the right way, you have to think a lot about everything, and either to be pragmatic or to be an API terrorist. It's not just about GET, POST, PUT, and DELETE. In real life, you have relations between resources, the need to move a resource somewhere else (think about a tree), or you may want to set a specific value to a resource. This article will sum up everything I learnt by building different APIs, and how I used <a href="http://github.com/symfony/symfony">Symfony2</a>, the <a href="http://github.com/FriendsOfSymfony/FOSRestBundle">FOSRestBundle</a>, the <a href="http://github.com/nelmio/NelmioApiDocBundle">NelmioApiDocBundle</a>, and <a href="http://github.com/propelorm/Propel">Propel</a>.
</blockquote>
<p>
It's a long post and covers things very completely with plenty of code samples and descriptions showing you how to use these pieces to make the API. He covers the major HTTP verbs (GET, POST, PUT & DELETE) as well as one of the lesser used ones - PATCH. He also looks at the HATEOAS documentation method and a brief look at using a simple client to do some testing.
</p>]]></description>
      <pubDate>Thu, 02 Aug 2012 12:03:24 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: The Essentials of Creating Laravel Bundles]]></title>
      <guid>http://www.phpdeveloper.org/news/18241</guid>
      <link>http://www.phpdeveloper.org/news/18241</link>
      <description><![CDATA[<p>
Continuing in their series looking at using the <a href="http://laravel.com">Laravel PHP framework</a>, NetTuts.com has posted <a href="http://net.tutsplus.com/tutorials/php/the-essentials-of-creating-laravel-bundles/">this latest article</a> focusing on the creation of "bundles" for use in Laravel-based applications.
</p>
<blockquote>
The <a href="http://laravel.com/">Laravel PHP framework</a> offers its bundles system to allow developers to redistribute useful packages of code, or to organize applications into several "bundles" of smaller applications. In this tutorial, we will learn the ins and outs of creating and distributing bundles from scratch. A Laravel bundle has access to all of the features that the framework offers to its host application, including routing, migrations, tests, views and numerous other useful features.
</blockquote>
<p>
They start with the "when to create a bundle?" question, a combination of the answers to four other questions (like "could others use it?" or "should this just be a library?"). From there they get into the actual code, showing you how to create a basic bundle that works with the <a href="https://en.gravatar.com/">Gravatar</a> service to pull an image for a given email address. Also included is a sample unit test, how to implement it in the controller and a sample view that interacts with it to make it all work.
</p>]]></description>
      <pubDate>Wed, 18 Jul 2012 10:03:34 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lineke Kerckhoffs-Willems' Blog: How to use the Symfony2 SonataAdminBundle]]></title>
      <guid>http://www.phpdeveloper.org/news/17995</guid>
      <link>http://www.phpdeveloper.org/news/17995</link>
      <description><![CDATA[<p>
In <a href="http://www.phpassionate.com/2012/05/22/how-to-use-the-symfony2-sonataadminbundle/">this recent post</a> to her blog <i>Lineke Kerckhoffs-Willems</i> talks about some recent Symfony2 development she's been doing and some of the trials she's come across when trying to implement the <a href="http://sonata-project.org/bundles/admin/2-0/doc/index.html">SonataAdminBundle</a> to build on their pre-existing Doctrine2 entities.
</p>
<blockquote>
I have been doing a lot of Symfony2 development lately for our project ProTalk and one of the things we needed was a backend for our database. This should be a fairly simple backend to start with, just an easy way to get data into the database. So I thought I would use the SonataAdminBundle to easy generate this backend based on the doctrine2 entities that we already have. Eventually, I got it working, but it took me some time to find out exactly how, so I thought I'd share my experiences.
</blockquote>
<p>
Based on some information she found in <a href="http://blog.quadspot.de/wordpress/symfony2/setting-up-a-symfony2-project-with-fosuserbundle-sonatauserbundle-and-sonataadminbundle">this other post</a>, she was able to configure and connect it to a "tag" entity. To make it work, however, she needed an empty controller to move forward.
</p>]]></description>
      <pubDate>Wed, 23 May 2012 10:33:05 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stefan Koopmanschap's Blog: Using git-svn with Symfony2's deps installer]]></title>
      <guid>http://www.phpdeveloper.org/news/17768</guid>
      <link>http://www.phpdeveloper.org/news/17768</link>
      <description><![CDATA[<p>
In <a href="http://www.leftontheweb.com/message/Using_gitsvn_with_Symfony2s_deps_installer">this latest post</a> to his blog <i>Stefan Koopmanschap</i> shares a quick tip about using the git-svn tool with the dependency installer in a Symfony2-based application.
</p>
<blockquote>
I work a lot with Symfony2's deps file for installing 3rd party bundles into my project (yeah I know, I should be using Composer, right?). This works really well when working with pure Git. However, when you're not using Git on it's own but instead use git-svn, you may run into some issues when issuing git svn dcommit,
</blockquote>
<p>
One issue relates to a "Failed to read object" error that could come up during the push. His solution involves a few steps (manual ones) to prepare those bundle directories and make it easier to push the rest of your changes. He also includes a few links to other resources that he found around the same topic.
</p>]]></description>
      <pubDate>Tue, 03 Apr 2012 10:52:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Henrik Bj&oslash;rnskov' Blog: Symfony2: Quick tip for your security configuration]]></title>
      <guid>http://www.phpdeveloper.org/news/17307</guid>
      <link>http://www.phpdeveloper.org/news/17307</link>
      <description><![CDATA[<p>
<i>Henrik Bj&oslash;rnskov</i> has a <a href="http://henrik.bjrnskov.dk/symfony2-security-configuration-tip/">quick new post</a> with a security tip for those using the Symfony2 framework in its configuration.
</p>
<blockquote>
Earlier when playing around with the Security component and SecurityBundle i found that for all paths you can specify a route name and the component will match it when check for the request paths. 
</blockquote>
<p>
Setting this up in your configuration gives you more control over the paths that are matched as well as more flexibility in defining them. He includes a note about a change you might have to make to the SecurityBundle's code to get the "check_path" part working correctly. You can find out more about the SecurityBundle's integration in <a href="http://tracehello.wordpress.com/2011/07/25/symfony2-securitybundle/">this blog post</a> from <i>Pablo Bandin</i>.
</p>]]></description>
      <pubDate>Tue, 27 Dec 2011 08:40:45 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Leasewebs Labs: Painless (well, less painful) migration to Symfony2]]></title>
      <guid>http://www.phpdeveloper.org/news/17299</guid>
      <link>http://www.phpdeveloper.org/news/17299</link>
      <description><![CDATA[<p>
<i>Stefan Koopmanschap</i> has written up an article on the Leaseweblabs.com blog about <a href="http://www.leaseweblabs.com/2011/12/painless-well-less-painful-migration-to-symfony2/">migrating a Symfony 1 application to Symfony2</a> in a (slightly) less painful way that making the move all at once.
</p>
<blockquote>
It is much easier to do a gradual migration. Start with one part of your application, and bit by bit migrate your logic and application. The traditional way of doing such migrations is to create a new project and have parallel development on the old and the new version of the application. The problem with this, though, is that when you make a change to your old application, you have to make the same change in the new codebase, essentially doubling the amount of work for each feature you need to implement. [...] You could wrap your old application into your Symfony2 application, and have different parts of your application be handled by different versions of your codebase.
</blockquote>
<p>
With the help of a bundle he created, <a href="https://github.com/Ingewikkeld/IngewikkeldWrapperBundle">IngewikkeldWrapperBundle</a> that handles the rerouting of your requests based on where the requested resource exists (in the Symfony 1 or 2 codebase). 
</p>]]></description>
      <pubDate>Fri, 23 Dec 2011 11:02:12 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Dzone.com: Two Symfony2 Bundle Repositories]]></title>
      <guid>http://www.phpdeveloper.org/news/17294</guid>
      <link>http://www.phpdeveloper.org/news/17294</link>
      <description><![CDATA[<p>
On DZone.com <i>John Esposito</i> has a new post sharing <a href="http://css.dzone.com/articles/two-symfony2-bundle">two Symfony2 bundle repositories</a> you can look to to improve your development experience with the framework - KnpBundles and Symfohub.
</p>
<blockquote>
If you're using Symfony2, you already know that the framework uses '<a href="http://symfony.com/doc/2.0/book/page_creation.html#page-creation-bundles">bundles</a>', the equivalent of plugins, if the core counted as a plugin too. (The <a href="http://symfony.com/doc/2.0/book/page_creation.html#page-creation-bundles">official documentation</a> calls bundles 'first-class citizens' in Symfony2.) So far so great idea, but an ecosystem depends on a community, and a community needs some kind of organization. So how is the Symfony2 bundle community organized, and how do you find existing third-party bundles? 
</blockquote>
<p>
<a href="http://knpbundles.com/">KnpBundles</a> provides a larger resource than <a href="http://symfohub.com/bundles">Symfohub</a>, but both have handy features to help you find what you're looking for - filtering, search recommendations and rankings.
</p>]]></description>
      <pubDate>Thu, 22 Dec 2011 12:05:43 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Johannes Schmitt's Blog: A New Killer Feature for Symfony2 Security]]></title>
      <guid>http://www.phpdeveloper.org/news/17065</guid>
      <link>http://www.phpdeveloper.org/news/17065</link>
      <description><![CDATA[<p>
<i>Johannes Schmitt</i> has <a href="http://blog.jmsyst.com/2011/10/new-killer-feature-for-symfony2.html">a new post</a> about his "killer feature" he's added to the security for <a href="http://symfony.com">Symfony2</a> framework (as a bundle) - a new customized expression-based query language that's compiled down to native PHP to make permissions checking simpler and faster.
</p>
<blockquote>
If you have used the Symfony2 Security Component to any modest degree, you will know that we have a quite heavy voting system which uses attributes like "IS_AUTHENTICATED_FULLY" to make authorization decisions. [...] If you are concerned about performance, then you should not be all too generous with the isGranted() calls. The second option would work as well, but writing a new voter each time you need to make a new check does not really seem ideal either. Fortunately, we can do better.
</blockquote>
<p>
He includes an example of this expression language in a direct isGranted() call, a string that checks to see if a user has three different roles, and a snippet showing the same thing in the docblock comment of a controller method. The second is a bit more complex, checking for an admin role or if the user is the one that should be deleted. You can <a href="https://github.com/schmittjoh/JMSSecurityExtraBundle/blob/master/Resources/doc/index.rst">find more doucmentation here</a>.
</p>]]></description>
      <pubDate>Mon, 31 Oct 2011 14:26:08 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Johannes Schl&#252;ter's Blog: Symfony 2 and mysqlnd]]></title>
      <guid>http://www.phpdeveloper.org/news/16938</guid>
      <link>http://www.phpdeveloper.org/news/16938</link>
      <description><![CDATA[<p>
<i>Johannes Schl&#252;ter</i> has <a href="http://schlueters.de/blog/archives/161-Symfony-2-and-mysqlnd.html">a new post to his blog</a> today about a bundle he's created for the Symfony2 framework that integrates some of the advanced statistics <a href="http://php.net/mysqlnd">mysqlnd</a> provides back to the framework's profiler tool - <a href="http://github.com/johannes/JSMysqlndBundle">JSMysqlndBundle</a>.
</p>
<blockquote>
Symfony provides a nice feature, which is the Symfony Profilier, an extensive logging and reporting system for Symfony developers to understand what's going on. A part of it is the Doctrine query logger which lists all database queries executed by Doctrine and their execution time. This is nice but when we're using mysqlnd in our PHP build we have more information available. "So why not use that information," I thought and built a new bundle for Symfony 2 doing exactly that.
</blockquote>
<p>
His bundle takes the <a href="http://php.net/mysqlnd.stats">"150 or so" statistics</a> and <a href="http://schlueters.de/blog/uploads/screenshots/symfony_mysqlnd.png">drops them into the profiler</a>, giving you even more insight into how your script is running. The bundle is <a href="https://github.com/johannes/JSMysqlndBundle">available on github</a>, making it simpler to fork and extend to add other features (some he suggests include caching and replication decisions using information from other mysqlnd plugins).
</p>]]></description>
      <pubDate>Mon, 03 Oct 2011 09:22:52 -0500</pubDate>
    </item>
  </channel>
</rss>
