News Feed
Sections




News Archive
feed this:

Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Mathias Noback:
Semantic versioning for bundles
September 30, 2014 @ 11:26:40

In a recent post to his site Mathias Noback looks at the use of semantic versioning, introducing some of its basic concepts and how it can relate to the work done in Symfony bundles.

Semantic versioning is an agreement between the user of a package and its maintainer. The maintainer should be able to fix bugs, add new features or completely change the API of the software they provide. At the same time, the user of the package should not be forced to make changes to their own project whenever a package maintainer decides to release a new version.

He breaks down what the version numbering represents (major, minor and patch versions) and how they work with Symfony's "semver" to handle issues that come with backwards compatibility concerns. He then looks at a few things to consider when versioning your bundles and how it relates to the underlying libraries it might use:

  • Bundles expose an API themselves
  • The API of a bundle leads a life on its own
  • A library may contain bugs that are totally unrelated to the bundle
  • A library may contain features that are not implemented by the bundle

Ultimately, he suggests that bundle versioning should have nothing to do with the underlying libraries/packages. It's his opinion that they should only be reversioned when there is a change in the actual bundle.

0 comments voice your opinion now!
semantic versioning symfony bundle package library opinion

Link: http://php-and-symfony.matthiasnoback.nl/2014/09/semantic-versioning-for-bundles/

Mattias Noback:
Backwards compatible bundle releases
September 29, 2014 @ 12:31:09

In his latest post Matthias Noback talks about a problem common to Symfony bundles (and, well, software in general) - dealing with backwards compatibility and breaks that could be introduced with new changes.

With a new bundle release you may want to rename services or parameters, make a service private, change some constructor arguments, change the structure of the bundle configuration, etc. Some of these changes may acually be backwards incompatible changes for the users of that bundle. Luckily, the Symfony DependenyInjection component and Config component both provide you with some options to prevent such backwards compatibility (BC) breaks.

He breaks the post up into a few different kinds of backwards compatibility breaks that could happen and code examples of each:

  • Renaming things
  • Changing visibility
  • Changing values

Each topic also includes methods for preventing issues with older users who maybe aren't using the new features. This includes things like sane default values for new settings, renaming services and creating new extensions for working with new properties.

0 comments voice your opinion now!
symfony bundle backwards compatibility changes prevent rename visibility values

Link: http://php-and-symfony.matthiasnoback.nl/2014/09/backwards-compatible-bundle-releases/

Gonzalo Ayuso:
Building a Pimple/Container from a YAML file
September 29, 2014 @ 10:54:10

In a recent post to his site Gonzalo Ayuso shows how to create a Pimple container (a dependency injection container) from a YAML configuration definition using a simple handler already included in Pimple.

[In a conversation with Máximo Cuadros about Dependency Injection Containers] I said that I prefer Symfony´s DIC instead of Pimple, mainly because its configuration with YAML (or even xml) files. But In fact we can customise Pimple/Containers with YAML files in a similar way than we do it with Symfony's DIC. In this example we're going to see one way to do it.

While Pimple does come with the "Container" functionality to make this happen, Gonzalo points out that using it this way violates several of the SOLID design principles. Instead, he offers an alternate solution - using the Config component from Symfony to handle the creation of the container using an already established YAML format. He includes an example YAML configuration structure, the matching Pimple code for it and a code sample showing how the YAML is parsed into the same result. You can find the code on his GitHub account if you're interested in the full structure.

0 comments voice your opinion now!
pimple symfony container solid config yaml dependencyinjection

Link: http://gonzalo123.com/2014/09/29/building-a-pimplecontainer-from-a-yaml-file/

SitePoint PHP Blog:
How to Deploy Symfony Apps with Capifony
September 25, 2014 @ 10:55:27

The SitePoint PHP blog has a tutorial today showing you how you can use the popular Capistrano tool to deploy Symfony-based applications. More specifically, it's focused in on one tool, Calpifony, that's a bit more tailored to what a Symfony deployment needs.

Say you have a Symfony application. At some point, you would like to deploy it to your server and show it to the world. Of course, you can do it all manually, but these days you can also choose to use a tool like Capifony. If you have developed Ruby applications in the past, you are perhaps familiar with Capistrano. Capistrano is a tool to deploy your Ruby application to your server. Capifony has been created on top of Capistrano, and is basically a collection of deployment recipes. In this article, we are going to deploy a Symfony application to a server with Capifony.

He starts off with a section giving an overview of how the Capifony tool works and how important the directory structure is. He then guides you through the installation of the tool and configuring your first simple project. He includes an example "deply.rb" configuration and walks through each piece, describing what it does and how to add some additional commands to the list. The post ends with the full updates configuration that makes the connection to the server, downloads a copy of a Git repository and executes Assetic and Bower commands on build.

0 comments voice your opinion now!
tutorial capifony symfony deployment capistrano introduction install configure

Link: http://www.sitepoint.com/deploy-symfony-apps-capifony/

Sound of Symfony:
Episode 4 - Best Practices
September 25, 2014 @ 09:32:38

The Sound of Symfony podcast has released their latest episode (#4) today focusing on Best Practices. Join hosts Magnus Nordlander and Tobias Nyholm and guest Kris Wallsmith ask they talk about some good practices to follow in Symfony-based applications.

In this episode we talk to Kris Wallsmith about best practices for your Symfony app. If you've ever wondered which code belongs in your controller, how to write your model, or how to separate your code into bundles, this is the segment for you. It also features the return of Magnus' favorite segment, the hidden gems section, and a discussion on news and a rundown of community updates.

Other topics mentioned include the walking trip to SymfonyCon, a few "hidden gems" and community updates about Symfony Live London 2014 and Symfony Live New York 2014. You can listen to this latest episode either through the in-page audio player or by downloading the mp3 for listening offline. If you enjoy the show, be sure to subscribe to their feed for more great content.

0 comments voice your opinion now!
soundofsymfony podcast ep4 bestpractices symfony framework

Link: http://www.soundofsymfony.com/episode/episode-4/

Symfony Blog:
Thelia, a Symfony-based e-commerce solution
September 17, 2014 @ 11:16:48

On the Symfony blog today they've posted an interview with Manuel Raynaud, the lead developer on the Thelia project. Thelia is a Symfony-based e-commerce solution that is free to download and use (and can easily be installed via Composer).

An interview with Manuel Raynaud, lead developer of Thelia, a Symfony-based e-commerce solution. Introducing the new Thelia 2 and how it's in perfect harmony with Symfony.

The interview starts with a brief introduction of Manuel and a quick overview of what the Thelia project is about and the current state of things. They get into some of the story behind Thelia and what parts of Symfony (components) it uses behind the scenes. They finish out the interview talking about some of the advantages the project offers and challenges they've faced along the way. There's also a bit about how Thelia is involved in the Symfony events and community.

0 comments voice your opinion now!
interview community symfony thelia ecommerce manuelraynaud

Link: http://symfony.com/blog/thelia-a-symfony-based-e-commerce-solution

Marc Morera:
Bye Bye Symfony
September 04, 2014 @ 12:41:00

In his most recent post Marc Morera says bye bye to Symfony and "hello to PHP". Confused? His point is that using the Symfony components as a whole in the framework isn't the only option anymore. You can use them just as effectively as pieces of a larger PHP project, puling them in as needed.

The reason of this post is just to tell you, with a simple example, how to say Bye Bye, Symfony! and say Hi PHP!. This really means uncouple from Symfony Components and still use them as the default implementation, while we can securely remove, from the composer require block, our Symfony dependencies.

He starts off with a simple example showing how to use Symfony's "UrlGeneratorInterface" to create a URL output class that can be injected to use in the route handling of the application. He then moves on to a more real-life example (a metaphor) using a USB connection and the adapters/cables that could be involved to connect various devices. He then shifts back over to the world of code and describes a specification interface that can be used with the URL generation and remove the Symfony dependency from it. On top of this he builds an adapter object that brings the Symfony component back into the picture and abstracts it out a level to make for more flexibility and testability in the long run.

We win maximum implementation flexibility and minimum coupling. Would be wise to say that a PHP project should tend to this thought, but once again, it depends on many factors. [...] Using ports and adapters is really a great tool for those who want to uncouple from implementations and a great pattern if you develop open source. Open source should satisfy as people as possible, so remember, specify and then implement.
0 comments voice your opinion now!
symfony component abstract tutorial interface specification

Link: http://mmoreram.com/blog/2014/09/01/bye-bye-symfony/

Matthias Noback:
Decoupling your (event) system
August 26, 2014 @ 11:15:17

Matthias Noback has continued his look at event handling in PHP applications (well, Symfony-related ones at least) in his latest post. In this latest post he focuses more on abstracting out the event handling process and decoupling it from your application as much as possible.

You are creating a nice reusable package. Inside the package you want to use events to allow others to hook into your own code. You look at several event managers that are available. [...] Introducing this dependency is not without any problem: everybody who uses my/package in their project will also pull in the [event dispatcher] package, meaning they will now have yet another event dispatcher available in their project (a Laravel one, a Doctrine one, a Symfony one, etc.). This doesn't make sense, especially because event dispatchers all do (or can do) more or less the same thing.

As mentioned, he focuses in on the Symfony ecosystem and the event handlers commonly used there. He talks about some of the disadvantages of the Symfony EventDispatcher and how its interface can lead to code bloat due to it's verbosity (flexibility?). He talks about its violations of the Interface Segregation Principle and how he would structure the listener setup and handling if he was starting from scratch. To this end, he's created an adapter that wraps around an EventDispatcher interface and works with objects for the different kinds of events rather than the string names.

0 comments voice your opinion now!
decouple event manager dispatch handling symfony adapter object

Link: http://php-and-symfony.matthiasnoback.nl/2014/08/symfony2-decoupling-your-event-system/

Geshan Manandhar:
3 Bundles to get started with REST in Symfony 2 and some tips
August 13, 2014 @ 12:18:05

Geshan Manandhar has a recent post that shares three Symfony bundles that can help you out greatly when creating RESTful applications and APIs. Links and a summary of each bundle are provided.

"I found out that you guys just build an amazing mobile app for your e-commerce venture, I heard you are using Symfony 2 for your back-end APIs. How did you make it that fast?" This is not very different that what I was asked some months back. The answer is we use a Service Oriented Architecture (SOA) where all back-end service follow the REST architecture to communicate with all the clients. The client can be built in any language as longs a they can do HTTP calls. Lets look at what Symfony 2 bundles you can use to build a similar scalable, fast and cacheable REST APIs.

His suggested bundles (all available to be installed via Composer) are:

The first two help more with the overall API structure and handling while the last (Lexi) is an effective way for handling authentication for the requests to your application.

0 comments voice your opinion now!
symfony bundles rest api top3 list

Link: http://geshan.blogspot.ae/2014/07/3-bundles-to-get-started-with-rest-in.html

Symfony Blog:
Pre-conference workshops at SymfonyLive New York and SymfonyCon Madrid are online!
August 13, 2014 @ 10:22:55

On the Symfony blog today they've officially announced the workshops that will be happening at this year's SymfonyCon Madrid and Symfony Live New York.

About 3 weeks ago, we launched 2 different polls to ask you what workshops you wanted to attend before SymfonyLive New York and SymfonyCon Madrid. First, we want to thank all the people who participated in the poll, so many of you answered, thank you very much for your time! Thanks to your votes, we were able to know which workshops were really interesting for you.

At Symfony Live New York you'll be able to attend Fabien's "Symfony Best Practices" or "Building RESTful Applications with Symfony" (the top two most requested training sessions). At SymfonyCon Madrid there's even more choices:

  • Building RESTful Applications with Symfony
  • Symfony Best Practices
  • Deploying Symfony Applications
  • Profiling PHP Applications

You can find out more about these two conferences from their main event websites: Symfony Live New York and SymfonyCon Madrid.

0 comments voice your opinion now!
symfony symfonycon symfonylive madrid newyork workshop list

Link: http://symfony.com/blog/pre-conference-workshops-at-symfonylive-new-york-and-symfonycon-madrid-are-online


Community Events





Don't see your event here?
Let us know!


api developer laravel list community tips series threedevsandamaybe library introduction framework opinion symfony release language interview deployment bugfix zendserver podcast

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework