planetePHP.fr
AFUP AFUP 2017-06-21T00:00:00+02:00

Carton plein pour l'appel à conférences

Afin de pouvoir dévoiler un programme au début de l'été, l'équipe AFUP s'était lancé un pari : un appel à conférences express, d'une durée d'un mois maxi. Le risque de ne pas avoir suffisamment de sujets soumis pour établir un programme existait, mais autant le dire, il a payé !

Les speakers du monde entier ont relevé le défi : une centaine de conférencier.e.s ont soumis des sujets, et c'est près de 190 sujets qu'il nous faut maintenant éplucher pour établir le programme du Forum PHP 2017.

L'équipe est déjà en train de plancher dessus, et dévoilera la majorité du programme le 3 juillet. En attendant, prenez votre place au tarif Early Bird : passée cette date, les places passeront au tarif de croisière, de 175€ à 275€. 

AFUP AFUP 2017-06-14T00:00:00+02:00

La billetterie du Forum PHP est ouverte... et elle évolue !

Mais la hausse des coûts généraux nous oblige à changer quelques lignes de fonctionnement de notre billetterie…
Après étude des nouvelles habitudes de réservations, nos événements annonçant désormais sold-out de plus en plus tôt, retrouvez désormais un calendrier en 3 temps :

  • Une période “Early Bird”, où vous faites confiance les yeux fermés à l’AFUP : réservez votre place sans connaître le programme ! Le tarif ne bouge pas : 150 euros les deux jours pour les membres AFUP, 250 euros les deux jours pour le plein tarif. 
  • Une période “tarif de croisière” : après la publication du programme, les tarifs augmentent de 25 euros pour tous types de visiteurs. Le tarif “membre AFUP 2 jours” passe à 175 euros, et le plein tarif “deux jours” à 275 euros. 
  • 6 semaines avant le Forum PHP 2017, on passe en tarif “Late Bird”: avis aux retardataires, les tarifs augmentent encore de 50 euros ! Le tarif “membre AFUP 2 jours” est fixé à 225 euros, et le plein tarif “deux jours” passe à 325 euros. 

Ces augmentations nous permettront de continuer à assurer le niveau de qualité d’accueil de nos visiteurs face à des coûts croissants, sans pour autant -nous l’espérons- toucher de trop près au budget des développeurs et des entreprises.
Profitez des meilleurs tarifs, et réservez au plus vite votre place pour les 26 et 27 octobre, à Paris.

Nicolas Hachet Nicolas Hachet 2017-06-08T16:47:02+02:00

Quels outils pour développer en PHP sous Windows ?

Les outils liés à la conception et aux développements informatiques sont légions. La composition de son environnement de travail  est très importante puisque de la performance des outils dépendent la productivité et l’efficacité du développeur. Que vous ayez déjà vos outils ou que vous soyez en recherche des vôtres, cet article liste les principaux outils que Continue Reading

Cet article Quels outils pour développer en PHP sous Windows ? est apparu en premier sur Blog PHP de Nicolas Hachet.

Kévin Dunglas (Lapin Blanc) Kévin Dunglas (Lapin Blanc) 2017-06-08T13:59:35+02:00

API Platform 2.1 Feature Walkthrough: Create Blazing Fast Hypermedia APIs, Generate JS Apps

The new UI of API Platform 2.1

API Platform is a framework designed to make the creation of API-based information systems easier. It provides server-side tooling to create modern hypermedia and Linked Data APIs in just a few minutes. This new version introduces client-side tools to bootstrap Single-Page Applications using ReactJS by consuming the autogenerated documentation of the API.

Six months after the release of API Platform 2, I’m very excited to announce the immediate availability of the first beta of API Platform 2.1!

The changelog is huge, more than 200 commits by dozens of developers have been merged. I think we can say that this release will be great!

Let’s review the most interesting new features. If you just want to try it, the demo has been upgraded to use this new version and you can download it on GitHub.

A ReactJS-based Admin System

API Platform automatically exposes API documentations respecting the Hydra (W3C) and Swagger/Open API open standards. We created a dynamic administration system built on top of the awesome Admin On Rest library that takes advantage of the Hydra format.

Just with this line of code

<HydraAdmin entrypoint="https://demo.api-platform.com"/>
, you will get the following result:

la suite...

Adrien Gallou Adrien Gallou 2017-06-06T02:00:00+02:00

Réécrire Capistrano en une demi-journée

Introduction

Capistrano est un outil de déploiement. Depuis maintenant 4 ans nous l’utilisons chez Decitre pour déployer 3 de nos applications / sites. Après ces 4 ans d’utilisation, nous avons rencontré différents problèmes qui nous ont amenés à reconsidérer l’utilisation de cet outil : nous utilisons maintenant Ansible pour effectuer nos déploiements.

Nous utilisons Capistrano sur 3 projets : deux projets Symfony utilisant capifony (qui utilise la version 2 de Capistrano), et un projet Magento utilisant la version 3 de Capistrano.

Limites de Capistrano

Capifony et Capistrano 2 ne sont plus maintenus

Depuis 2015, capifony n’est plus maintenu. Capifony surchargeait une stratégie de déploiement permettant de builder les assets en local : la stratégie “copy”. Celle-ci a pour avantage de préparer les sources localement avant de les envoyer en production : il n’y a donc par exemple pas besoin de node ou ruby sur les serveurs de production, seulement sur le serveur de déploiement. De plus, ces étapes de build n’ont besoin d’être effectuées qu’une seule fois : autant éviter de les lancer sur chaque serveur de production. Avec Capistrano 3 cette stratégie n’est pas intégrée en standard, et aucun plugin (tels que xuwupeng2000/capistrano-scm-gitcopy ou wercker/capistrano-scm-copy) ne nous a paru, au moment de nos tests, satisfaisant.

Les déploiements de Capistrano n’étaient pas atomiques par défaut

Dans ses versions antérieures, Capistrano n’avait pas de déploiements atomiques, c’est un sujet qui a été abordé dans de nombreuses issues. Nous utilisions la version 3.2.1 de Capistrano, qui n’effectuait pas de déploiement atomique. Nous avons dû modifier la tâche deploy:symlink:release afin que celle-ci le soit. Cela a été corrigé dans la version 3.3.3 de Capistrano via cette pull request.

A noter que sur Ansible, le lien symbolique est posé de façon atomique et que nous n’avons pas eu de hack à effectuer. Cette limite n’en était donc plus une, nous aurions pu mettre à jour Capistrano (mais celle-ci n’était pas une des raisons principales du changement).

la suite...

Kévin Dunglas (Lapin Blanc) Kévin Dunglas (Lapin Blanc) 2017-05-31T13:44:48+02:00

Upcoming conferences and meetups: Web2Day, ChtiJS and sfPot Lille

I’ll speak at some conferences in June:

Here is the abstract of the API Platform talk (in french but slides will be in english):

Au cours de ce talk, je présenterai comment créer très facilement une API web de qualité, une webapp (SPA) et une app mobile à l’aide du framework Open Source API Platform (PHP).

API Platform permet d’exposer une API REST (niveau 3) 100% fonctionnelle juste en décrivant son modèle de données ou en l’important depuis Schema.org.

Nous découvrirons réaliserons sans effort une API supportant :

  • les opérations REST (lecture et écriture)
  • la validation de données
  • la pagination
  • les tris et les filtres
  • une documentation Swagger générée automatiquement et une interface graphique d’administration
  • un système de gestion de droit utilisateur
  • un mécanisme de cache HTTP par invalidation
  • la négociation de contenu
  • l’imbrication de documents

De plus, notre API supportera directement les formats hypermedia modernes tels que JSON-LD, Hydra et HAL qui facilitent l’intéropérabilité des systèmes (Linked Data, web sémantique).

Grâce à Docker, notre API se lance en un instant et peut être déployée en un instant dans les “clouds”.

Une fois notre API construite, nous utiliserons les outils fournis par API Platform pour générer une interface d’administration complète, une SPA et une app mobile basés sur React JS grâce à la description hypermedia de l’API.

Romain Ciaccafava 2017-05-26T13:00:00+02:00

PHP Tour 2017

Le PHP Tour 2017 s'est tenu cette année à Nantes les 18 et 19 mai. C'est un événement majeur de la c...

AFUP AFUP 2017-05-22T00:00:00+02:00

Le CFP pour le Forum PHP 2017 est ouvert !

Deux ans après la sortie de la version 7 de PHP, il est temps de faire le point sur langage et les outils qui évoluent autour : nous avons besoin de vous ! 

Le Forum PHP 2017 se tiendra les 26 et 27 octobre prochains, au Marriott Rive Gauche, dans le quartier de Denfer-Rochereau. Un lieu plus grand, plus beau, aux équipements confortables, pour un Forum PHP encore plus fort. 

Venez partager avec nous votre expérience, votre savoir-faire, ou vos anecdotes concernant le langage. Venez nous parler de votre utilisation des dernières fonctionnalités de PHP, du dernier paradigme à la mode, de votre framework préféré, expliquez-nous comment vous gérez vos données, vos API REST, racontez nous l’histoire incroyable de l’introduction de cette nouvelle technologie ou nouveau concept qui a révolutionné votre façon de travailler ! Le TDD peut-être ? Le DDD ? L’architecture hexagonale ? On veut tout savoir !

Une seule façon pour soumettre vos sujets : remplir notre formulaire en ligne. Vous avez jusqu'au 18 juin, minuit : ça va passer très vite, alors ne tardez pas ! 

Des questions sur le processus de sélection, visitez notre site pour trouver toutes vos réponses. 

De geek à directeur technique De geek à directeur technique 2017-05-15T14:20:12+02:00

Travailler seul : quelques trucs pratiques

Je suis actuellement dans une phase de création de startup, et j’ai été amené à me poser quelques questions d’ordre pratique. Très concrètement, comment faire pour travailler dans des conditions propres à garantir une certaine efficacité, alors qu’on n’a pas beaucoup de budget ?

Ordinateur

La première chose à faire, c’est d’avoir un ordinateur suffisamment performant pour ne pas avoir l’impression de perdre du temps à cause de lui. Ça paraît évident, mais j’ai longtemps eu des ordinateurs “juste suffisants“ ; je suis maintenant bien content d’avoir une machine assez puissante pour que le sujet de me vienne même plus à l’esprit (plus d’info à ce sujet dans l’article que j’avais écrit).

Prévoyez un ordinateur portable que vous pourrez emmener facilement partout où vous aurez besoin de vous déplacer, tout en vous offrant un bon confort de travail. Pensez que la plupart du temps vous devrez vous contenter de l’écran, du clavier et du trackpad de votre ordinateur, sans possibilité de le brancher à un écran, clavier ou souris externe.

Prenez aussi un ordinateur avec un système d’exploitation que vous maîtrisez ; ne perdez pas de temps à vouloir apprendre un nouveau système, votre productivité serait catastrophique pendant trop longtemps.

J’utilise actuellement un Lenovo Yoga 2 Pro âgé de 2 ans (qui n’est plus au catalogue, remplacé par les Yoga 700 et Yoga 900) équipé d’un processeur Core i7, 8 GO de RAM, 512 GO de SSD, et un écran 13,3 pouces 3200×1800 tactile, pour 1,4 kg ; le tout sous Ubuntu Linux.

Téléphone portable

Là encore ça paraît évident, mais ça va mieux en le disant. Parce qu’il faut être réactif, il faut pouvoir être alerté lorsqu’on reçoit un message, même si on n’est pas devant son ordinateur. Et il faut pouvoir envoyer des emails, gérer son calendrier, surfer sur Internet, etc. sans avoir besoin d’ouvrir son ordinateur à chaque fois.

Donc il est important d’avoir un téléphone portable de bonne qualité. Cela veut dire avec un écran assez grand, non seulement pour pouvoir surfer dans de bonnes conditions, mais surtout pour pouvoir utiliser le clavier virtuel sans appuyer sur plusieurs touches à la fois.

la suite...

De geek à directeur technique De geek à directeur technique 2017-05-08T18:15:59+02:00

Génération de tokens

Je suis en train de travailler sur une application qui nécessite l’utilisation de tokens. Certains doivent avoir une durée de vie assez courte, d’autres n’ont pas de péremption. Tout l’enjeu autour de ces tokens est de s’assurer qu’ils ne soient pas devinables facilement, ni qu’ils soient attaquable par force brute. Mais en même temps, certains tokens sont destinés à être copier-coller, et il est alors préférable qu’ils puissent être saisis à la main par un être humain ; il faut donc qu’ils ne soient pas trop longs et qu’ils soient intelligibles.

À une époque, on aurait généré un hash MD5 à partir d’un nombre aléatoire, éventuellement en utilisant la date courante comme sel. En PHP ça donnait ça :

$token = md5(time() . mt_rand());

Simple et plutôt efficace. Sauf qu’il y a plusieurs soucis avec cette solution :

  • Le résultat est une chaîne de 32 caractères hexadécimaux, ce qui correspond à un message de 128 bits. C’est bien d’un point de vue cryptographique (plus le message est long, plus il est difficile à craquer par force brute), mais c’est un peu long à taper à la main.
  • MD5 est un algorithme aujourd’hui considéré comme insuffisamment sécurisé.

Pour le premier point, on peut changer la base du message ; en passant d’une base 16 (caractères hexadécimaux) à une base 36 (tous les caractères alphanumériques, aussi appelée base hexatridécimale, hexatrigésimale ou sexatrigésimale), on diminue la taille du token à 25 caractères.
Pour le second point, il est recommandé de passer à l’algorithme SHA256.

En PHP, cela donne ceci :

$token = base_convert(hash('sha256', time() . mt_rand()), 16, 36);

Cette fois-ci, on a un message de 256 bits, ce qui est encore mieux d’un point de vue cryptographique, généré par un algorithme bien plus robuste. Et grâce à la base 36, on a un message de 50 caractères au lieu de 64.
Il y a toutefois deux choses qui pourraient être améliorées. Le message est encore trop long à mon goût ; personne n’a envie de taper à la main un hash de 50 caractères, donc il faut trouver un moyen pour le raccourcir. Et il y a des caractères trop similaires (les lettres i et l, et le chiffre 1 ; le chiffre 0 et la lettre o) pour qu’un être humain normal puisse les recopier sans se poser la moindre question.

Un bon moyen de raccourcir le message est d’utiliser une base encore plus longue. Le plus simple est de passer sur un encodage en base 62 (les chiffres + les lettres minuscules + les lettres majuscules).

la suite...


Flux ATOM

Flux RSS
Twitter

Les sources

Ajouter une source ?

Envoyez un email avec l'URL du site et du flux à planetephpfr AT afup POINT org

Infos