[:fr]La parole est aux sponsors : Altran[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de sponsors pour mieux comprendre leur parcours quand vous les retrouverez sur le PHP Tour ! Julian Mathieu, Directeur de Business Unit Digital Sud-Est a répondu à nos questions

Ce sera la première année qu’Altran sponsorise un événement de l’AFUP. Qu’est-ce qui vous a motivé à sponsoriser le PHP Tour Montpellier 2018 ?

Les raisons de notre 1ère participation au PHP Tour remontent à la création en 2017 d’une Digital Factory à Montpellier. Ce centre de développement d’applications web et mobile est notamment spécialisé sur du PHP. Il compte actuellement une quinzaine de collaborateurs et vient renforcer le dispositif d’Altran en France en matière de développement (qui compte déjà plusieurs centres, notamment ceux de Toulouse et Lille).
Notre équipe technique est principalement composée de passionnés et experts de l’open source, et de PHP. Notre panel de technologies s’étend également du DEVOPS au mobile en passant par le front-end.
Être sponsor du PHP Tour est un moyen pour nous de s’impliquer dans l’écosystème PHP, de rencontrer des partenaires et clients potentiels et pourquoi pas d’autres passionnés de PHP qui voudraient rejoindre nos rangs pour participer à l’aventure. Enfin c’est aussi une opportunité pour notre équipe de partager avec ses pairs.

(suite…)

[:fr]La parole est aux sponsors : Code Rhapsodie[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de sponsors pour mieux comprendre leur parcours quand vous les retrouverez sur le Forum ! Jérôme Vieilledent, CTO Code Rhapsodie a répondu à nos questions

Code Rhapsodie est une jeune entreprise, peux-tu nous la présenter ?

Code Rhapsodie est un cabinet de conseil, d’expertise et de formation dans le domaine du web en général, et de l’écosystème PHP en particulier.
La société est issue de la fusion des activités de ses 4 fondateurs (Arnaud Lafon, Olivier Portier, Florent Huck et Jérôme Vieilledent), par ailleurs tous anciens salariés de l’éditeur eZ Systems.
Nous proposons un accompagnement technique (conseil/expertise/architecture logicielle) et de la formation, le tout en tentant de toujours tendre vers l’excellence technique. Ce positionnement ne nous pose absolument pas en concurrence avec les ESN traditionnelles, mais bien en complémentarité.
En outre, Code Rhapsodie s’est également construite, et continue de se construire, autour de vraies valeurs humaines. Je sais, tout le monde se réclame de cela aujourd’hui… Nous mettons réellement en place des actions autour du bien-être au travail et de la confiance. Cela passe par le choix de la plateforme de travail à l’arrivée d’un salarié, de la mise à disposition d’un fauteuil confortable et ergonomique, de la souplesse des horaires, du télétravail possible par défaut, de l’indemnité kilométrique vélo, d’un CE, etc…
Nous sommes aujourd’hui 9 salariés en comptant les dirigeants. Nous travaillons également régulièrement avec des freelances de confiance.

(suite…)

[:fr]La parole est aux sponsors : Deezer[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de sponsors pour mieux comprendre leur parcours quand vous les retrouverez sur le Forum ! Guillaume Grillat, Tech Community Ambassador chez Deezer a répondu à nos questions

Cela fait de nombreux événements que l’on peut vous retrouver lors des événements de l’AFUP et nous vous en remercions. Cette année avez-vous prévu quelque chose de particulier sur votre stand ?

Effectivement, on est super content de pouvoir soutenir la communauté AFUP une nouvelle fois cette année à l’occasion du PHP Tour; bien sûr ce sera l’occasion de pouvoir rencontrer nos équipes, et de partager notre quotidien chez Deezer; on réfléchit aussi à des animations ludiques sur notre stand en mettant de la bonne humeur (et de la musique)… et il y aura certainement des petits cadeaux pour lancer l’été 😉

(suite…)

[:fr]La parole est aux speakers : Sarah Haïm-Lubczanski[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Sans documentation, la fonctionnalité n'existe pas !

La nouvelle fonctionnalité est prête, tout le monde est ravi. Les utilisateurices vont-ils savoir s’en servir ? Si vous pensez que le changelog et la PHPDoc suffisent, je voudrais vous demander : pourquoi priver vos utilisateurices des meilleures parties de votre logiciel ? Je vous propose de définir la qualité minimale attendue pour une documentation et d’examiner l’effort à fournir pour l’atteindre. Nous parlerons des process de documentation et de comment on fait pour documenter avec les moyens et les compétences disponibles.

Salle Morpheus
17/05/2018
15:15-15:55

Tu es ‎Technical Writer, ce qui un poste peu fréquent. Peux-tu nous en parler ?

En résumé : je suis en charge de la documentation technique du logiciel, open source, que produit mon entreprise.

Dans la communauté de la documentation (hé oui, elle existe), un terme a été trouvé qui paraît plus juste pour mon métier, il s’agit de Documentarian. Ce nouveau terme reflète mieux le fait que l’écriture de documentation est la moins fréquente de mes tâches. La majorité de mon travail est de l’architecture d’information, et de la communication avec le reste des personnes qui permettent au logiciel d’exister (les développeurs, les responsables de produits, les consultants, etc.).
Chez eZ Systems, je fais partie du département Ingénierie et je travaille avec des développeurs PHP et frontend. Ayant moi-même un passé de développeuse PHP, je me sens à même de comprendre leurs contraintes et leur boulot.
Je ne travaille pas seule, nous sommes 3 dans la Team Doc et nous collaborons au jour le jour avec la quinzaine de développeurs de la Team Dev.
Les points communs avec les développeurs PHP est que je résous des problèmes pour les utilisateurs. Je travaille au rythme des releases de notre logiciel. Les sprints rythment mes périodes de travail, et je participe à la démo et à la retrospective.

(suite…)

[:fr]La parole est aux sponsors : Kaliop[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de sponsors pour mieux comprendre leur parcours quand vous les retrouverez sur le Forum ! Sophie Imbach, Responsable communication Kaliop a répondu à nous questions

Kaliop soutient l’écosysème des meetups locaux. Pourriez-vous nous parler de cette initiative ?

Effectivement depuis plusieurs années nous accueillons des meetups de l’écosystème tech / marketing / UX local. Non seulement nous accueillons des meetups, mais nous encourageons les salariés à y participer et nous en organisons nous-mêmes avec des sujets inspirants comme la protection de l’environnement ou la Blockchain (Meetup by Kaliop). Nous sommes reconnus “meetup-friendly” par Montpellier Tech Hub. Nous sommes très fiers, par exemple, d’avoir accueilli le premier Meetup de lancement de l’antenne AFUP Montpellier, puis celui qui fêtait ses un an. Partager ses connaissances, comme soutenir l’écosystème open source, fait partie de l’ADN de la société, c’est donc une démarche naturelle et que nous encourageons.

(suite…)

[:fr]La parole est aux speakers : Romain Monceau [:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

La pire meilleure idée : faire du batch processing avec Doctrine

Doctrine, comme indiqué dans sa documentaion officielle, n'a pas été créé pour être utiliser pour des processus lourds de traitement de données (import/export, édition de masse, etc.). Néanmoins, la réalité des projets amène parfois à devoir réutiliser des briques métiers (validation, subscribers, entités, queries, etc.). Cette présentation est un retour d'expérience présentant de bonnes pratiques sur l'utilisation de Doctrine et des SGBD afin de traiter une grande volumétrie de données.

Salle Morpheus
18/05/2018
16:25-17:05

Tu travailles pour la société Akeneo qui édite le logiciel open source éponyme, quel y est ton rôle ?

J’ai eu la chance de débuter l’aventure dès le début d’Akeneo, ce qui m’a permis d’y jouer plusieurs rôles. J’ai commencé en tant que développeur de l’équipe Produit et cette équipe Produit est passée de 2 à 6/7 personnes sur les 2 premières années.
Après ces 2 années, j’ai demandé à aller dans l’équipe Professionnal Services qui s’occupe du consulting (formation des intégrateurs, intégration et expertise notamment). C’était important pour moi d’évaluer ce que j’avais pu mettre en place, de me rapprocher du besoin client et d’avoir un retour sur l’expérience développeur. Ce fût une expérience très enrichissante qui m’a permis également de rencontrer des développeurs à travers le monde.
Je me suis ensuite occupé de l’équipe Marketplace pour développer la connectivité de notre outil pendant 2 années. Aujourd’hui et depuis le début d’année, je suis à nouveau dans l’équipe Produit en tant que Lead Developer et Coach Agile d’une équipe de 5 personnes. J’essaie aussi de m’occuper de notre communauté du mieux que je peux.

(suite…)

[:fr]La parole est aux speakers : Ulrich Lusseau[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

REX sur 5 ans d'élevage de lapins

Il y a 5 ans, j'installais ma première instance de RabbitMQ et n'avait qu'un seul broker. Aujourd'hui, j'en suis au stade industriel. Je vais vous raconter tous mes échecs et toutes les solutions apportées par RabbitMQ, ça va parler dlk, cluster, fédération... mais aussi déploiement automatique des configs, librairies PHP. Une connaissance de base de RabbitMQ/AMQP est recommandée.

Salle Morpheus
17/05/2018
11:25-12:05

Au cours de ces 5 ans d’utilisation de RabbitMQ, quels ont été les cas d’utilisation fonctionnels de cet outil ?

J’utilise énormément RabbitMQ pour différer tout ce qui prend du temps dans une page web et qui n’est pas vital pour renvoyer la réponse à l’utilisateur : envoi de mails, traitement d’image, gestion du cache, indexation dans elasticsearch… J’utilise également RabbitMQ pour paralléliser les crons comme les imports de données. Je trouve que cet outil n’a de limite d’utilisation que mon imagination et j’ai encore plein d’idées à tester, je manque juste de temps pour les mettre en oeuvre.

(suite…)

[:fr]La parole est aux speakers : Arnaud Lemaire[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

CQRS, Fonctionnel, Event Sourcing & Domain Driven Design

Avec autant de buzzwords dans le titre, explicitons le menu 😕 – Nous commencerons avec une étude des principes du CQRS et la notion de projection pour construire les modèles de données dédiées à la lecture, le tout avec un datastore traditionnel (relationnel). ? – Nous continuerons avec le concept d’état en programmation fonctionnelle, et comment les gérer au sein d’une application tout en respectant le principe d’immutabilité. Et comment ils ont transformé la gestion d’états pour la construction d’interface utilisateur. ? – Dans un troisième temps, nous nous intéresserons aux évènements du domaine-métier dans le Domain Driven Design et comment ceux-ci s’intègrent dans la mécanique de construction des projections. ?– Enfin, nous assemblerons toutes ces notions pour faire apparaitre l’«?event sourcing?» comme modèle de persistance pour nos données. ? – Pour clôturer, nous verrons les erreurs les plus courantes rencontrées lors de l’implémentation d’un modèle en event sourcing. Take away: ?– Utiliser CQRS (sans event-sourcing) pour simplifier la gestion de la persistance dans son application. ?– Comprendre comment gérer des états dans un contexte fonctionnel ? – Gérer facilement les évènements-métier au sein d’une architecture DDD. ?– Savoir comment implémenter correctement un système basé sur l’event sourcing.

Salle Jarvis
17/05/2018
16:25-17:05

Tu vas nous parler de DDD et d’Event Sourcing : as-tu eu l’occasion de voir de nombreux projets utilisant ces principes ?

L’approche du Domain Driven Design, comme principe pour la construction d’un logiciel, est devenue, pour moi, un prérequis pour le succès d’un projet logiciel. Le fait d’architecturer le logiciel, à partir du métier qu’il représente, est en effet le meilleur moyen d’éviter que ce dernier ne soit déphasé par rapport à celui-ci. C’est donc une pratique qui est maintenant intégrée dans mon quotidien de développeur.

A contrario, l’application des patterns techniques, comme l’Event Sourcing, est soumis aux contraintes du projet. Il s’agit d’outils qui permettent de bénéficier d’importants avantages, sur certains types de projets. Ces derniers ne doivent, toutefois, pas être appliqués aveuglément (comme n’importe quels autres patterns, d’ailleurs).

Travaillant à la fois en tant que développeur sur des applications pour le compte de clients tiers, mais aussi en accompagnement technique auprès de différentes équipes, j’ai la chance de pouvoir évoluer sur des projets diversifiés en termes de langages, d’industrie ou de taille. Autant de contextes qui m’ont permis de bénéficier d’une expérience éclectique sur la mise en place de ces principes.

(suite…)

[:fr]La parole est aux speakers : Kevin Dunglas[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Maîtriser le composant Serializer de Symfony

Le composant Serializer de Symfony existe depuis la première version de Symfony 2, mais a gagné énormément de fonctionnalités au fil du temps. Au cours de ce talk, je présenterai les fonctionnalités méconnues et pourtant très puissantes de cette bibliothèque. Après un rappel des fondamentaux, nous découvrirons comment le composant permet - de manière transparente - de manipuler tous types d'objets PHP, quelques soient leurs styles : getters / setters, propriétés publiques, proxys.... Nous verrons ensuite les différents formats supportés nativement : JSON, XML, YAML et CSV. Puis nous manipulerons des dates, et évoquerons l'upload de fichiers avec le support des "data: URI". Finalement, nous aborderons quelques cas plus complexes tels que choisir les propriétés à sérialiser / désérialiser grâce aux groupes, gérer les références circulaires, sérialiser des arbres en limitant leur profondeur et mettre à jour des objets déjà existants.

Salle Jarvis
17/05/2018
15:15-15:55

Pourrais-tu nous présenter des cas d’usage du composant serializer ?

Le serializer Symfony permet de transformer n’importe quelle structure de données interne au langage de programmation PHP (objet, tableau associatif…) en un format générique intelligible par d’autres langages ou systèmes (tels que le SGBD). Le composant de Symfony supporte nativement les formats JSON, XML, YAML, CSV mais aussi les « data: » URI.

Il est également capable d’effectuer l’opération inverse, à savoir transformer l’un de ces formats génériques en structure de données PHP (désérialisation). Contrairement à json_decode, qui ne sait créer qu’un tableau associatif ou un object stdClass à partir des données formatées passées en entrée, le composant Symfony est assez intelligent pour recréer les types appropriés (les instances des bonnes classes).

De plus, ce composant est très facile à étendre, par exemple le framework API Platform (que je développe) propose, grâce au composant Serializer, le support de formats d’API hypermédias tels que JSON-LD, JSONAPI et HAL.

En bref, le serializer est très pratique pour créer des API web, mais il peut servir dans tous les cas ou l’on doit manipuler des données pour les faire transiter d’un système à un autre.
Par exemple, j’ai réalisé à l’aide du serializer Symfony un petit outil open source nommé Doctrine JSON ODM.

Cette bibliothèque tire parti des colonnes de type JSON que supportent les SGBDR modernes tels que Postgres 9.4+ et MySQL 5.7.8+ : elle serialize automatiquement en JSON enrichi n’importe quel structure de données PHP avant de la stocker dans la colonne JSON. Quand les données sont récupérées, la bibliothèque va effectuer l’opération inverse, à savoir transformer le JSON enrichi en objets typés PHP.

Ainsi, il devient possible stocker des données très dynamiques dans un SGBD classique, en tirant parti des capacités de type NoSQL des moteurs seulement là où c’est nécessaire. Mieux, il est également possible de requêter le contenu du document lui même, et même de poser des index en son sein.

Grâce au Serializer Symfony, cette opération est complètement transparente pour l’utilisateur final si il utilise déjà l’ORM Doctrine.

(suite…)

[:fr]La parole est aux speakers : Joel Wurtz[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

100% Asynchrone - 0% Callback en PHP

PHP et Asynchrone n'ont jamais fais bon ménage. Pourtant depuis plusieurs années de nombreuses librairies s'y sont essayé mais leurs API ont toujours été rempli de callbacks et la complexité associée. Nous verrons comment nous affranchir des callback et transformer nos scripts en asynchrone pour obtenir des meilleurs performances.

Salle Morpheus
17/05/2018
14:30-15:10

Tu vas nous parler d’asynchrone. As-tu un retour sur des projets tels que ReactPHP ?

Oui, plein ! Il faut savoir que dans la tête de beaucoup de personnes PHP n’a jamais été fait pour de l’asynchrone, ce qui est totalement faux. En effet ce n’est pas du tout un problème de language (même si il peut aider), mais beaucoup plus un problème de librairies. Il y a encore quelques années, ReactPHP était inexistant et il y avait très peu de librairies sur l’asynchrone. Mais ce temps est révolu, ReactPHP est proche d’une version stable et de nombreux autres projets existent tel que Amphp (dont je parlerai). Les choses commencent même à bouger du coté de PHP pour aider tout ce petit monde, mais pour en savoir plus il faudra venir à ma conférence.

(suite…)