Letters Home from PHP Summer Camp

PHP SummerCamp: Symfony and eZ Devs Meet in Paradise (Rovinj, Croatia)

behat-training-1I go to a lot of conferences, and thoroughly enjoy each and every one of them for their unique content and the generous people I am guaranteed to meet. Recently, Saša and I had the privilege of giving a few workshops at PHP SummerCamp: a workshop-only event filled with Symfony and eZ topics. And even though I had high expectations for the conference, it blew me away. After 4 days, I didn’t want to go! I was now leaving good friends and an amazing place where I got to do what I love most: teach.

And we did plenty of that! Together, Saša and I taught workshops for basic
Symfony, Behat, PHPSpec and even had some extra time to show some Symfony
extras. Bernhard Schussek‘s all-day forms workshop was also a huge hit among others.

Real Learning in Paradise

IMG_20140904_123203261

We all know what makes conferences a success: good organization, high quality  speakers and a good social aspect. PHP SummerCamp had all of these, thanks in large part to the organizer NetGen.

But what truly made this a special week was a list of three really unique things:

1) The conference has *only* workshops. This means that while you’re in paradise, you’re learning new tools by actually coding them for three days. To me, this seemed even richer than the normal talk-based conference.

IMG_20140904_094118458_HDR

 

2) The conference takes place in Rovinj, a Croatian town on the Adriatic sea with Italian influence, perfectly clear water, a running trail, and tons more. Each day after training and learning all day, we sat outside next to the bay and enjoyed fresh fish and great company.

3) Due to the smaller size, it was easy to connect with people at a real level. I made new friends like Bruno Skvorc and Derick Rethans. I also had time to sit down with 2 core eZ developers to talk about making it easier to use eZ inside a Symfony project (Jerome) and developer experience (Bertrand). This type of collaboration and real communication was the norm. Even when it came to returning to the airport, we all worked together and carpooled. That’s really special.

IMG_20140904_140523418

Hoping for 2015!

When the conference returns next year, I’ll be first in line to see if I
can return. If you live near Croatia and are in the Symfony or eZ world,
you’ll want to be there too!

On the last night, the main organizer – Ivo Lukač – sent Leanna and I home
with two oil paintings of Rovinj. These will sit in our new home as reminders
of a wonderful week.

Rovinj

Some news about KnpMenu

We’re proud to announce the release of KnpMenu version 2.0!
KnpMenu illustration

What’s new ?

  • New options, checkout the new options in our updated documentation
  • New code organization : KnpMenu is more extensible than before
  • You can easily manipulate your menu thanks to the new class `MenuManipulator`
  • We follow the new version convention – semver – in order to improve the comprehension of versionning on KnpMenu : Don’t be scared about backward compatibility breaks, they will be only on major version !

To learn more about what’s new and what changed, we recommend you to read the CHANGELOG file on the project.

KnpMenu is hot !

Right now, KnpMenu is one of the most used lib in the PHP environment. It’s used by:

And many more projects. We are working closely with our users in order to constantly improve your KnpMenu experience.

Integrations

Of course, KnpMenu is nicely integrated to Symfony thanks to our KnpMenuBundle, which we also maintain. But did you know that it can be easily integrated to Laravel too ? Also, KnpMenu is still compatible with Silex thanks to a Pimple integration.

What’s next ?

In parallel with maintenance, we’re working on the following things:

  • Layout performances improvement, since KnpMenu is made to build big and dynamic menus, performance is crucial and we’re working on it !
  • Adding documentation to undocumented features
  • New renderers (You can check out the PR about breadcrumbs renderer)

We hope you’ll like our work ! Special thanks to Stof, he’s always there to share advice.

KNPeers don’t fear the ALS Ice-Bucket Challenge

Oh yes, we are challenged and here are the results!

brace_yourself

It started with a challenge from Marc Morera to Ryan :

Who challanged Sasha, Roman and Kristen.

Roman

Who challanged Jenya, Flo and Pilot.

Kristen

Sasha

Who challanged Pavel and David.

Flo

Who challanged Hurty, Pedro and Gildas.

Of course, all of this frigid fun is in the name of bringing awareness to ALS and research to help cure this terrible disease! You can read more about it and donate here: http://www.als.net/

…to be continued…

 

 

 

Guest Post by Ivo Lukač, Netgen

Symfony becoming a common ground for mid and big-sized teams working with PHP

First to give some context to this post. I am the co-owner of Netgen, a web development agency which uses eZ Publish as a base for most of web projects.  We used to make extensions and integrations in more or less pure PHP, occasionally using some libs. There were many incentives to consider PHP frameworks, but we never did. When eZ Systems announced  2 years ago that the new version of eZ Publish will be based on Symfony, we were finally ass-kicked to invest time and learn a framework that will help us be more efficient and productive by not reinventing the wheel all the time.

Anyway, in last 2 years we’ve done a few projects based only on Symfony and have also done several projects on the eZ Publish new stack (current version is 5.3) which is based on Symfony. We are still not great experts in the Symfony framework but we’re already benefiting from the endeavour. When you work in a team, you really want to have as much common ground as possible. If every team member is doing stuff on their own, it becomes very hard to maintain project code and also very hard to switch developers between projects. So a team should either invent their own conventions or embrace external ones.

Over the years, we have embraced the eZ conventions for content management work and have extended them with our own. In a similar way we are now embracing Symfony conventions. We will still base our new content centric projects on eZ, but empower it with Symfony know-how to customize, extend and integrate. We will also build web apps that are more feature oriented solely on Symfony.

So far the story isn’t that interesting for global audience, but I am getting there, stay with me :)

It seems that eZ Systems is not the only one thinking that Symfony is a very good common ground for products. The Symfony community, led by its creator Fabien Potencier, did an amazing job with Symfony2:

  • performant and modern architecture
  • joining forces with other great PHP projects like Doctrine
  • separated in many components
  • letting each components be used independently
  • extensive documentation (rare beast in open-source projects)
  • adopting recent object oriented PHP traits and other important concepts like dependency injection

And many, many more good things :)

Certainly KNPLabs did its share too, with their KNPBundles and KNPUniversity community projects.

This has enabled greater Symfony usage and its community is gaining more and more momentum. Projects like Drupal and phpBB are using a lot of components independently. Even some other frameworks, like Laravel, are using  Symfony components.

This is starting to be very interesting for bigger projects where you might need  multiple products to fulfil the scope. Someone who knows Drupal or eZ might integrate phpBB with less hassle than before.

There are also new products that are developed completely with the full stack Symfony framework. Besides eZ Publish, which is basically refactoring everything, there are also Akeneo PIM, OroCRM and Sylius. There are probably more out there too.

Besides products being developed on top of Symfony, things are changing in custom PHP development. A few month ago, a big web development agency from our town decided to start using Symfony as a base for their homegrown CMS. A few days ago I was told that a web development team in a bank from my town is switching to Symfony too.

Is this just a coincidence or evidence that Symfony is the main PHP framework of choice already, well, at least for mid-sized and big teams working with PHP. There are, of course, many other frameworks, many of them suitable for different situations, simpler or more specialised. There is also Zend, but to be honest I don’t know much about it. And recently, I haven’t heard much about it either. Maybe I am just biased or not informed. Although, there are plenty of surveys and polls where Symfony usually beats Zend.

With 2 year experience as a Symfony developer and project manager, I find it very effective for our use case. We tend to use mature open source code (from standard Symfony components to the eZ Publish new stack with the legacy stack as a fallback), and the possibility to extend the code is vital. With Symfony’s Service Container (Dependency Injection component), it’s possible to do so very elegantly. For performance we lean on the HTTP cache implementation and use Varnish with ESI. It’s almost native to Symfony. Pulling usable bundles with Composer is also a breeze. The MVC implementation is quite strict as you can’t do much in Twig, so it forces you to do things the right way.

To conclude, Symfony is not the only option but it’s definitely the best option at this moment when several people work together in PHP and implement less-than-simple projects or products.

By using Symfony and the eZ Publish new stack as well, we at Netgen are members of two communities, constantly trying to build the bridge between. In that direction we are organising the PHP / eZ Publish Summer Camp this September. It will be a great chance to learn a lot about Symfony and about the new eZ stack. And also to discuss all of us at Netgen and KNP Labs, so meet us there :)

SymfonyPizza @KNPLabs

Miss interesting discussions with smart colleagues? 
What will it be?
A meeting of those who love Symfony2 and a very warm company. You can shoot questions, you can answer questions, you can just listen, eat, drink and get smarter.
Registration is limited to 15 people, so be the first.
Need details? Here we go!
Topic: PHPCR
Speaker: Oleg Zinchenko
Date: June, 27 @ 19-30
Place:
Kiev, Moskovska street 27, 5th floor(Arsenalna station)
Come and enjoy tasty food & topics!
Registration is required!!

Register now, it’s free ;) 

Aria ? Une nouvelle copine rencontrée à l’Accessiday

logoJe suis super heureuse d’avoir pu participer à l’Accessiday dans ma ville adoptive, Caen. J’y ai rencontré des très belles personnes qui sont passioné(e)s et sensibles à la qualité du code produit et à l’expérience de l’utilisateur. Et en particulier j’ai découvert “Aria“, qui m’a bien épatée :D

Les supports des conférences seront  bientôt mis en ligne, chaque conférence était en effet filmée (http://www.accessiday.fr/#programme).

Mes highlights de la journée:

IMG_6018La rencontre avec Delphine Malassingne, sa présentation de l’accessibilité pour le grand public m’a beaucoup touchée. Nous avons eu aussi une discussion passionnée autour du people management.

 

IMG_6021

 

La présentation interactive de Sébastian Délorme , avec qui on a utilisé les consignes WCAG pour créer une app mobile… et  son retour d’utilisateur plein de surprises…!

 

 

IMG_6024Et j’ai bien rigolé lors de la présentation de Stéphane Deschamps et Matthias Dugué avec le sujet “peu” polémique “JS et accessibilité font-ils bon ménage ?” – j’ai découvert à cette occasion ma copine “Aria;-)  Et la façon dont elle tchatche avec VoiceOver et Talkback.

 

 

Je soutiens que leur solution s’applique à tous projets faits avec amour, des tests, des standards, du binômage, des user stories … “Un client, ça s’éduque – mon luc” :D

IMG_6025

Et bien sûr, on était présent sur le JobBoard de la journée…

IMG_6023

Merci à Willy et Sylvain - les Calvacoders :D

SymfonyPizza @ KNPLabs

Miss interesting discussions with smart colleagues? 
What will it be?
A meeting of those who love Symfony2 and a very warm company. You can shoot questions, you can answer questions, you can just listen, eat, drink and get smarter.
Registration is limited to 20 people, so be the first.
First beer (juice, water) is free ;)
Need details? Here we go!
Topic: Free
Date: May, 23 @ 19-00
Place:
Porter pub, Kiev, Mazepy street 3 (Arsenalna station) (https://plus.google.com/105816614686484432727/about?gl=ru&hl=ru)
Come and enjoy tasty food & topics!
Registration is required!!

Register now, it’s free ;) 

Consulting agile chez Legallais

Legallais est une entreprise familiale normande qui existe depuis maintenant 124 ans, forte de 750 salariés. Leader dans la vente de quincaillerie à destination des professionnels du bâtiment, saviez vous que l’entreprise a récemment été récompensée d’un prix de la meilleure plateforme e-commerce ? C’est en partie grace à l’optimisation de ses offres multi-canaux (internet, smartphone, téléconseillés) qu’elle est devenue leader du marché.

1226-g-1226_LegallaisBouchard-lacherdeballons

J’ai été contactée par le responsable de l’équipe web, Anthony LeCourtes, pour deux jours de consulting agile. L’enjeux : La refonte de la plateforme française.

Afin de gagner ce pari, l’équipe voulait connaître et tester quelques méthodes agiles, tant pour la gestion de projet et pour le processus de développement.

J’ai proposé le programme suivant :

  • Journée découverte de l’agilité avec une partie de serious games, un peu de théorie et une session de brainstorming sur leur méthodes de travail actuelles.
  • Une démie journée Backlog création et grooming avec le Product Owner.
  • Une démie journée de planning poker avec l’équipe afin de préparer leurs premiers sprints.

La journée découverte de l’agilité

Commençons avec un petit ice-breaker physique ! Même si l’équipe se connait déjà très bien, c’était à moi de découvrir mes partenaires de jeu. J’ai donc préparé quelques questions et selon raponse, il fallait faire un geste sportif. L’effet positif : l’activité physique reveille vraiment tout le monde ;-)

Pas trop de théorie au début ! Learning by doing ! Donc on joue toute la matinée au Lego4Scrum. Le moment le plus apprécié par l’équipe :-)

IMG_5664

On termine la matinée avec un brainstorming autour de la question : Comment améliorer notre façon de travailler.

Requinquée après le déjeuné, l’équipe a ensuite attaqué la session What4Do, qui a apporté plusieurs idées concrètes suite au brainstorming :

  • Faire un Kanban afin de mieux gérer le temps entre la maintenance de la plateforme existante et le développement de la nouvelle plateforme. L’utiliser comme moyen de communication avec les différents services internes qui ont souvent des demandes “très urgentes”.
  • Une journée OpenTaff mensuel pour la R&D et échange des bonnes pratiques.
  • Pair-Programming et code review réguliers.
  • Des daily Stand-Ups devant la cafette :)

Un peu de théorie et ensuite, une simulation de planning poker, qui a montrée qu’il n’est pas si facile de découper une tâche et de l’estimer….

Le ROTI était entre 3 (“parce qu’on demande à voir d’abord si ça marche en réalité”) et 5 (“Je suis conquis et j’en ai marre de la méthode 1664 à l’arrache” / “J’adore les Legos”).

Demie journée de Backlog grooming

Le plus difficile était derrière nous : Anthony avait découpé le travail de 6 mois en milestones qu’il avait également priorisés. Nous nous sommes concentrés sur le premier milestone : découpage d’abord en sprints, puis, création des user stories et leur definition of done.

Demie journée de Poker Planning

Tout le monde est surpris que l’estimation d’une tâche puisse prendre tant de temps ! Je dis que c’est normal pour la toute première tâche et toute la discussion a permis de voir plus clair les enjeux du projet : la vision globale (ce qu’on veut livrer), l’architecture (workflow de deploiement et de livraison)… le Kick-off va surement être plus efficace grâce à cette discussion.

Scrum-Planning-Poker-1

L’équipe n’avait pas l’habitude d’estimer des tâches, car elle travaille exclusivement sur des projets internes. Le côté ludique a aidé à se sentir plus en confiance. J’ai également insisté sur le fait qu’on n’utilise pas l’estimation pour faire un planning Gant et figer tout le monde sur l’estimation; c’est un outil pour s’assurer que tout le monde ait la même vision de la difficulté d’une tâche : Si mon équipier pense qu’elle va durer 2 heures et moi je pense qu’elle va durer 2 jours, il y a surement un malentendu ou une information qui n’est pas passée !

En 3,5 heures on avait terminé le mois de Janvier.

L’équipe est maintenant armée pour réussir le défi : Livrer une nouvelle plateforme e-commerce, en gardant la même qualité de maintenance sur l’ancien site.

success-baby

La recette du succès:  1 kilo de Post-Its, une tranche de Kanban, une prise de Pomodoro et une bonne dose d’esprit d’équipe :)

Sea, Sun and… Symfony!

Have you ever dreamt about learning things about Symfony in one of the most beautiful places in the world?

Well your dream has come true: we’re glad to announce our sponsorship of the fabulous first PHP Summer Camp in Croatia!

This amazing event will take place next september (2014) from the 3rd to the 6th in Rovinj in a beach resort.

Yeah, that’s nice. But now… how interesting is it going to be?

Well I can promise this is going to be a great place to learn about Symfony.

You’ll have 3 full days of Symfony2 workshops with amazing Symfony gurus – yes, you heard right, it’s all about workshops: you’re going to get your hands dirty!

You will learn and work with KNP guys like Ryan Weaver and Saša Stamenković about Symfony, testing with Behat and PHPSpec.

Our good friend Paweł will introduce you to Sylius so that you learn how to create an ecommerce platform with Symfony.

The amazing Bernhard Schussek is going rock your world about the infamous Form Framework.

And other great speakers are already on board – see the confirmed speakers now.

We are really glad to sponsor this event; it really is what we like at KNP: hands-on trainings in a friendly – and sunny – atmosphere!

Now, if you want to organize a workshop – ping them!
If you want to sponsor this event – ping them!
And in any cases… save the date and we’ll see you there!

− Read more at PHP Summer Camp.

Вебинар “Symfony2 framework, с чего начать?”

У многих есть друзья/знакомые, которым интересен Symfony.

Но, как обычно, нам лень или нет времени уделить достаточно внимания, рассказать и показать что это и как легко можно начать работать с Symfony2.
Webinar blackboard sign

Для того, чтобы исправить это и сохрнить ваши нервы KNP Labs организовывает специальный открытый вебинар!

Во время вебинара слушатели узнают:

  • Что такое Symfony2 framework?
  • Каковы его преимущества по сравнению с другими фреймворками?
  • Как начать использовать Symfony2 на практике?
  • Получите ответы на ваши вопросы, касательно опыта использования Symfony2

Когда? 25 апреля с 14-00 до 15-00 по киевскому времени
Где? Google Hangout
Сколько? Бесплатно, при условии предварительной регистрации!

Спешите, регистрация уже открыта!

Спасибо, что поддерживаете любовь к Symfony в мире! ;)