planetePHP.fr
AFUP AFUP 2016-02-11T00:00:00+01:00

Prenez votre place pour le PHP Tour Clermont-Ferrand 2016

Le cycle de conférences se tiendra en début de semaine, les lundi 23 et mardi 24 mai.

Qu'il soit pour un ou deux jours, le billet pour le PHP Tour 2016 prend en compte l'accès à toutes les conférences, l'inscription à un atelier, et le repas du midi. Membres AFUP, bénéficiez de 100 euros de réduction sur le tarif plein, pensez à profiter de cet avantage non-négligeable ! Prenez votre place maintenant.

Anticipez votre déplacement, Clermont-Ferrand est facilement accessible en avion (la compagnie Hop! dessert Clermont-Ferrand en provenance de nombreuses villes de province !) ou en train.

Attention, le PHP Tour se déroulera le lendemain d'un week-end de rugby à Clermont-Ferrand : les hotels le dimanche soir sont apparemment pris d'assaut ! Pensez à réservez maintenant votre chambre. Toute la liste des hôtels de Clermont-Ferrand est à retrouver sur le site du Polydôme

AFUP AFUP 2016-02-10T00:00:00+01:00

Rendez-vous AFUP Paris : PHP 7

Ce rendez-vous AFUP accueillera trois conférenciers réputés.

 

La soirée débutera avec William Agasvari qui nous parlera de "PHP7, l'éveil de la PHPorce !"

Dans cette session nous parlerons de l'installation de PHP7, de sa sécurisation d'environnement d'hébergement ( FASTCGI / FPM / NGINX / APACHE ) de test et de production pour une performance optimale.

 

La soirée continuera avec Julien Pauli qui abordera "PHP 7 est arrivé"

Cette session abordera de nombreux points autour des nouveautés pour l'utilisateur, des Meilleures performances et de la migration : comment/pourquoi

 

Pour clôturer la soirée, Loïck Piera qui traitera "A la recherche d'incompatibilités avec PHP 7"

Présentation de php7cc, un outil d'analyse statique pour détecter les problèmes de compatibilité avec PHP 7

 

Enfin, un verre de l'amitié est offert par JoliCode qui permettra de débattre sur le thème de la soirée avec les différents participants

 

Comme toujours le RDV est gratuit et ouvert à tous, n'hésitez donc pas en parler autour de vous, et comme toujours…le nombre de places est limité. Attention donc.

 

Pour vous inscrire : http://afup.org/pages/rendezvous/index.php?id=24

Gilles Février Gilles Février 2016-02-08T14:48:39+01:00

Le PHP Tour 2017 aura lieu à Nantes !

Alors que l’appel à conférenciers du PHP Tour 2016, qui se tiendra les 23 et 24 mai prochains à Clermont-Ferrand, n’est pas encore clos (vous pouvez encore envoyer vos propositions de conférences jusqu’au 20 février), l’Assemblée Générale de l’AFUP a retenu le dossier de candidature de Nantes pour l’édition 2017 ! Cinq ans après l’édition … Continuer la lecture de Le PHP Tour 2017 aura lieu à Nantes ! 
AFUP AFUP 2016-02-08T00:00:00+01:00

Le PHP Tour retourne à Nantes

Un dossier de candidature en béton présenté lors de l'Assemblée Générale de l'association, et un vote à l'unanimité ont permis à l'équipe de remporter l'organisation de l'événement. 

L'édition 2017 du PHP Tour se déroulera donc à Nantes. La motivation est d'ores et déjà au top au sein de l'équipe : des sponsors se sont déjà manifestés, des idées fusent pour l'apéro communautaire, et les bénévoles répondent déjà à l'appel. Le lieu d'accueil est quant à lui en cours de sélection. 

Bravo à l'équipe nantaise, l'AFUP est ravie de revenir chez vous !

AFUP AFUP 2016-02-06T00:00:00+01:00

Bureaux de l'AFUP, fondateurs et conseil d'administration


Bureau 2014
Président : Olivier Mansour
Trésorier : Martin Supiot
Secrétaire : Jean-François Lépine
Vice-président : Maxime Teneur
Vice-trésorier : Christophe Villeneuve

Bureau 2016

  • Président : Cyril PASCAL
  • Trésorier : Christophe Villeneuve
  • Secrétaire : Laurence Hoizey
  • Vice-président : Xavier Leune
  • Vice-trésorier : Olivier Dolbeau
  • Vice-secrétaire : Morgane Tisserant
  • Membres du conseil d'administration : Adrien Gallou, Anthony Maison, Florian Ferrière, Muriel Lusseau, Jacques Bodin-Hullin, Xavier Lacot.

Bureau 2015

  • Président : Maxime Teneur
  • Trésorier : Jacques Bodin-Hullin
  • Secrétaire : Thierry Marianne
  • Vice-président : Cyril Pascal
  • Vice-trésorier : Christophe Villeneuve
  • Vice-secrétaire : Laurence Hoizey

Bureau 2014

  • Président : Fabrice Bernhard
  • Trésorier : Martin Supiot
  • Secrétaire : Jean-François Lépine
  • Vice-président : Maxime Teneur
  • Vice-trésorier : Christophe Villeneuve
  • Membre du conseil d'administration : Olivier Mansour
  • Membre du conseil d'administration : Xavier Lacot
  • Membre du conseil d'administration : Thierry Marianne
  • Membre du conseil d'administration : Thomas Gasc
  • Membre du conseil d'administration : Jacques Bodin-Hullin
  • Membre du conseil d'administration : Cyril Pascal

 

Conseil de surveillance 2014

  • Président: Perrick Penet-Avez
  • Membre du conseil de surveillance : Xavier Gorse
  • Membre du conseil de surveillance : Armel Fauveau
  • Membre du conseil de surveillance : Nicolas Silberman
  • Membre du conseil de surveillance : Sarah Haïm-Lubczanski
  • Membre du conseil de surveillance : Arnaud Limbourg

 

Bureau 2013 

Lors de l'AG 2013 a été voté la mise en place d'un bureau éxécutif

  • Président : Olivier Mansour
  • Trésorier : Martin Supiot
  • Secrétaire : Jean-François Lépine
  • Vice-Président : Fabrice Bernhard
  • Vice-Trésorier : Maxime Teneur
  • Vice-Sécrétaire : Rodolfo Ripado
  • Membre du bureau éxécutif : Claire Bonachera
  • Membre du bureau éxécutif : Christophe Villeneuve
  • Membre du bureau éxécutif : Christophe Chervy
  • Membre du bureau éxécutif : Aurélien Vairet
  • Membre du bureau éxécutif : Xavier Lacot
  • Membre du bureau éxécutif : Mickaël Perraud

 

Bureau 2012

  • Président : Xavier Lacot
  • Trésorier : Mickael Perraud
  • Secrétaire : Aurélien Vairet
  • Vice-Président : Olivier Mansour
  • Vice-Trésorier : Martin Supiot
  • Vice-Sécrétaire : Jean-François Lépine

 

Bureau 2011

  • Président : Jean-Marc Fontaine
  • Trésorier : Perrick Penet
  • Sécrétaire : Gauthier Delamarre
  • Vice-Président : Xavier Lacot
  • Vice-Trésorier : Mickael Perraud
  • Vice-secrétaire : Aurélien Vairet

 

Bureau 2010

  • Président : Nicolas Silberman
  • Trésorier : Perrick Penet
  • Sécrétaire : Hugo Hamon
  • Vice-Président : Olivier Hoareau
  • 2nd Vice-Président : Cyril Pierre de Geyer
  • Vice-Trésorier : en cours
  • 2nd Vice-Trésorier : Christophe Villeneuve
  • Vice-secrétaire : Raphaël Rougeron
  • 2nd Vice-Secrétaire : Gauthier Delamarre

 

Bureau 2009

  • Président : Xavier Gorse
  • Trésorier : Christophe Villeneuve
  • Sécrétaire : Sarah Haim
  • Vice-Président : Nicolas Silberman
  • Vice-Trésorier : Julien Pauli
  • Vice-secrétaire : Eric Colinet

 

Bureau 2008

  • Président : Arnaud LIMBOURG
  • Trésorier : Christophe Villeneuve
  • Secrétaire : Mickael MITHOUARD
  • Vice-Président : Xavier Gorse
  • Vice-Trésorier : -
  • Vice-secrétaire : Sarah Haim et Cyril Grandval

 

Bureau 2007 Lors de l'AG 2007 a été décidé de faire un passage de temoin en douceur entre le président (Guillaume PONCON) et le futur président (Arnaud LIMBOURG).

la suite...

rootslabs rootslabs 2016-02-01T10:30:04+01:00

Utiliser CodeClimate avec Github & Travis dans un projet PHP

Après avoir utilisé Scrutinizer-CI, j’ai décidé d’utiliser CodeClimate pour PHPPresentation.

Logo CodeClimate

Ajout du projet sur CodeClimate

Après une connexion via GitHub, j’ai ajouté un projet de type « Repository GitHub ».

Vous avez juste à ajouter le propriétaire et le nom du projet GitHub. Dans notre cas, ce sera « PHPOffice/PHPPresentation ».
L’ajout se fait automatiquement et après le premier build, votre accueil devrait se présenter comme cela :
Accueil

Intégration de CodeClimate dans votre projet

Pour cela, il suffit de rajouter à la racine de votre dépôt un fichier .codeclimate.yml de ce type :

engines:
  phpcodesniffer:
    enabled: true
  phpmd:
    enabled: true
  duplication:
    enabled: true
    config:
      languages:
      - php
ratings:
  paths:
  - src/**/*
  - tests/**
exclude_paths:
- vendor/**/*

Grâce au nœud « engines », votre projet sera testé via PHPCodeSniffer, PHPMd et via un outil interne sur la duplication de code.
Grâce au nœud « ratings », seuls les chemins définis seront utilisés pour le calcul de votre projet.
Grâce au nœud « exclude_paths », les chemins définis seront exclus de l’analyse.

Intégration de CodeClimate avec Travis-CI

Il vous faut pour cela aller dans les settings du projet puis sur l’onglet « Test Coverage ».
A partir de là, tout devrait vous être expliqué.
Mais en gros, cela se passe comme tel :

  • Modifier votre composer.json pour ajouter un require-dev :
    {
     "require-dev": {
       "codeclimate/php-test-reporter": "dev-master"
      }
    }
  • Modifier votre .

la suite...

Remi Collet Remi Collet 2016-01-29T11:24:56+01:00

Apache HTTP Server et répartiteur de charge vers PHP FPM

L'un des avantages de FPM et de séparer et d'isoler proprement le frontal web du serveur d'application.

Voici un exemple de configuration utilisant Apache en répartiteur de charge entre plusieurs instances FPM.

 

La configuration de base est vraiment (trop) simple

    # Creation du repartiteur et de ces membres
    <Proxy balancer://phpfpmlb>
        BalancerMember fcgi://10.0.0.12:9000
        BalancerMember fcgi://10.0.0.34:9000
    </Proxy>
    # Redirection de l'execution PHP vers le repartiteur
    <FilesMatch \.php$>
        SetHandler "proxy:balancer://phpfpmlb"
    </FilesMatch>

Pour aller plus loin, voir la documentation :

 

jy[B]log jy[B]log 2016-01-27T14:32:00+01:00

Défi 2016 : un commit par jour

Fin 2015, période de fête, et période "faisons le point". Pas folichons ce point, concernant mon blog et mes projets open-source. Je n'ai pas écris un seul billet en 2015, et l'activité sur mes projets libres n'a pas été terrible.

Sur github, voici comment mon activité était représenté il y a quelques semaines :

Contributions sur Github en 2015

Parmi toutes ces contributions, indiquées par des carrés verts, il n'y a pas que des évolutions sur le code de mes projets mais aussi des évolutions sur l'extension Opquast Desktop (une mission financée par Temesis, afin qu'elle fonctionne sur les dernières versions de Firefox), et également des ouvertures de tickets, des commentaires...

Cette baisse d'activité sur mes projets libres, en particulier sur Jelix et SlimerJS n'est pas terrible pour moi dans la mesure où ça n'avance pas beaucoup alors que ça m'est utile et que c'est utile pour des utilisateurs.

J'ai donc décidé que cette année, premièrement, j'essaierai d'écrire plus souvent sur mon blog (voilà un premier billet), et deuxièmement, j'augmenterai l'activité sur mes projets libres ou d'autres projets libres, avec un défi : au moins 1 commit par jour sur un dépôt. Et pendant mon temps libre bien sûr.

Un commit, ça peut paraitre beaucoup parce que parfois, pour ajouter une fonctionnalité ou corriger un bug, et donc aboutir à un commit, cela peut prendre plusieurs heures (et je n'ai pas "plusieurs heures" de temps libre chaque jour), et cela peut paraitre peu, parce que, juste "un" commit...

Donc, est-ce réalisable ? Est-ce utile ? Est-ce que cela va apporter vraiment un plus sur mes projets ? Est-ce que cela va être compatible avec mes autres activités ?

J'ai trouvé des réponses dans le post de John Resig, qui s'est lancé le même défi en 2014. Depuis presque deux ans, il arrive à coder tous les jours sur des projets libres, comme on peut le constater sur son tableau de bord github.

Et finalement, pour moi aussi ça fonctionne : depuis presque un mois, j'arrive à committer tous les jours sur mes dépôts Github, en y passant une heure ou deux, le soir principalement. C'est une question d'organisation et d'entrainement. Comme je travaille tous les jours sur un de mes projets perso, je perd moins de temps à me remémorer où j'en suis. Je ne perds pas le fils. Du coup je passe moins de temps que je pensais au début, tout en restant efficace.

la suite...

Pascal Martin (n+1).zéro Pascal Martin (n+1).zéro 2016-01-22T00:00:00+01:00

Les générateurs, c'est le bien ! Un cas d'usage.

J’annonçais lundi le lancement de la « semaine des générateurs » : cette semaine, chaque jour, un article a été posté par un développeur différent, présentant un cas d’utilisation qu’il avait de générateurs. Ils sont tous référencés depuis mon post de lundi.

Aujourd’hui, pour finir cette semaine1, c’est mon tour !

Présentation de mon cas

En recherchant le mot-clef yield dans un de mes projets au boulot2, je l’ai trouvé neuf fois — plus quelques fois dans des commentaires ou noms de méthodes.

Une bonne partie de ces utilisations correspondent à des cas évidents d’utilisation de générateurs pour plusieurs de mes collègues : on parcourt une série de données — souvent depuis une base de données — et on souhaite effectuer un traitement sur chaque ligne, indépendante des autres. Aucune raison donc de tout charger en mémoire dans un tableau. Bien sûr, on souhaite tout de même séparer chargement / manipulation / affichage des données. Plusieurs exemples de ce type ont été montrés cette semaine et je ne partirai donc pas sur un de ces cas pour cet article.

Le cas dont j’ai choisi de parler va, en fait, dans le sens inverse : j’ai en entrée un fichier binaire constitué d’un nombre variable d’enregistrements, chacun de taille variable. J’ai besoin de lire ces enregistrements un par un, de les analyser, puis de les stocker en base de données.

Le format de mes fichiers

Chacun de mes fichiers est composé d’une suite d’enregistrements, indépendants les uns des autres. Chaque enregistrement, une suite de données binaires contenant une liste de livres, est composé des champs suivants :

  • 2 octets (entier) : la taille de l’enregistrement, ces deux octets étant exclus du compte
  • 2 octets (entier) : le nombre de livres dans l’enregistrement
  • Ensuite, pour chaque livre, une suite de données (titre, format, auteurs, …) — toujours les mêmes champs, certains étant de taille variable avec un délimiteur de fin.

Mon approche

J’ai commencé à bosser sur le parcours de ces fichiers il y a quelques mois, alors que notre plate-forme était déjà en PHP 5.6. Donc, je suis directement parti sur des générateurs, pour séparer analyse / parcours / utilisation des données et ne pas les charger intégralement en mémoire — et sans avoir à mettre en place un itérateur à la main.

Un flux, bien sûr !

Pour manipuler un fichier dont j’ai besoin de lire les données alors que j’avance dans le fichier, en partant du début de celui-ci et en allant jusqu’à la fin, je passe généralement par un flux —

la suite...

cd ~tigrou/pwet.fr/Blog cd ~tigrou/pwet.fr/Blog 2016-01-21T17:38:00+01:00

Powered by Metalsmith (and Github, TravisCI, Myth, npm...)

And here is another version of this blog! As usual, it's a good opportunity to experiment recent or interesting technologies and to apply new good practices in a different context than at my daily job at eZ Systems.

The fundamental change this time is that it is now statically generated. To do that, I use a tool called Metalsmith. I've already used Metalsmith to publish my mountain bike website and I still find it brillant. It is at the same time super simple and powerful thanks to its plugins. By the way, the full source code is on Github, each and every new version of this website is made with less and less code, it seems like I'm getting lazier with time. Also, the build process is run by Travis-CI with the great benefit of not having to maintain an up to date environment for that on the hosting server :-)

As a matter of fact, I also did various choices at different levels when rebuilding this website:

  • no external dependencies in the pages like custom fonts, social widgets and so on... Even no Google Analytics. I've came to the conclusion that the price for the reader does not worth it. So the main font is the good old Arial and to share a post on the main social networks (feel free to do it ;-)) you have good old hypertext links. And as a result, you won't see here the stupid cookie warning...
  • it seems like font icons are not that good so this website is font icons free, the few icons were replaced by inline SVG coming from Simple icons.
  • npm as the only package manager and as the tasks runner so no bower, grunt or gulp. Again, given the simplicity of this project, it's more than enough and it's a good way to limit the maintenance to a minimum.
  • no CSS pre-processor: I don't like pre-processors like Sass or Less and I much prefer to write future proof CSS and post-process it to get a working CSS in current browsers. PostCSS is clearly the tool in this area right now but on the other hand Myth has been there for a while, it is much more simple and there's already a plugin for Metalsmith, so for now the winner is... Myth :-)
  • on the CSS side: flexbox all the things and CSS custom properties (variables) for the win. Those 2 new CSS features change everything when it comes to write the stylesheets. And again given the simplicity of this project, there is no need for a grid framework.

As you can see, this new version is focused on the Less is more mantra. Actually, for quite some time now, I try to apply the following quote from Antoine de Saint-Exupéry in my developments:

It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove.

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