planetePHP.fr
Gilles Février Gilles Février 2015-12-09T13:35:25+01:00

PHP 7 est de sortie !

Ça y est, PHP est désormais disponible dans sa version 7.0.0. Cette nouvelle version majeure, qui a demandé plus de deux ans de travail, apporte son lot de nouveautés. L’une des avancées les plus notables est le gain de performances : PHP7 peut en effet être jusqu’à deux fois plus rapide que la version 5.6. … Continuer la lecture de PHP 7 est de sortie ! 
AFUP AFUP 2015-12-07T00:00:00+01:00

Antennes AFUP, accueillez le PHP Tour 2017

Vous avez envie d'accueillir la communauté PHP dans votre ville ? Vous souhaitez fédérer les membres AFUP de votre région, et montrer le dynamisme du réseau économique des entreprises PHP locales ? Candidatez pour accueillir le PHP Tour 2017 ! 

Assistés de l'équipe AFUP, organisez le cycle de conférences, déterminez le programme, choisissez les talks, aidez-nous pour la logistique de l'événement. 
Demandez le dossier de candidature à notre équipe en écrivant à bureau[at]afup.org , et n'hésitez pas à poser toutes les questions nécessaires pour affiner votre proposition.

Le choix de la ville d'accueil sera fait lors de l'Assemblée Générale de l'association, courant février.  

Yohann Poiron Yohann Poiron 2015-12-05T12:11:34+01:00

PHP 7 : le nouveau moteur est axé sur la vitesse, la vitesse, et la vitesse

Contrairement aux versions précédentes comme PHP 5.3.x et PHP 5.5.x, où l’équipe de PHP a introduit une série de changements, PHP 7 est livré avec des modifications de syntaxe minimes, se concentrant davantage sur l’amélioration des performances de base, et la mise à niveau de l’interprète PHP.

Néanmoins, s’il y a des développeurs qui utilisaient encore certaines extensions âgées de PHP, et de SAPI (Server Application Programming Interface), ils auront un peu de travail pour enlever tout le code existant de leurs applications. Néanmoins, si de telles situations sont devenues très rares, puisque l’équipe de PHP a déjà rendu obsolète la plupart de ces anciens outils dans les versions précédentes, il convient de noter que maintenant le code a été enlevé du noyau de PHP. Une liste complète est disponible ici.

Comme mentionné ci-dessus, PHP 7 est axée sur la vitesse, et des benchmarks effectués au cours des derniers mois ont montré qu’il était presque deux fois plus rapide que les anciennes versions PHP 5.x, et au coude à coude avec le projet HHVM (HipHop Virtual Machine) de Facebook, qui est un compilateur Just-In-Time (JIT) pour le code PHP.

PHP 7 : le nouveau moteur est axé sur la vitesse, la vitesse, et la vitesse

La nouvelle version est basée sur le Zend Engine, qui est plus rapide et utilise moins de mémoire. On évoque ainsi des améliorations de performances entre 50% et 200% sur des applications du monde réel sans changer une ligne de code. PHP 7 est également compatible 64 bits. Andi Gutmans, CEO de Zend, dit que la nouvelle version a également réduit les besoins en mémoire, de deux tiers environ par rapport aux exigences initiales.

Une migration en cours

Comme beaucoup de projets PHP open source ont entendu parlé de PHP 7 depuis l’hiver dernier, la plupart ont déjà mis à jour leur code pour supporter PHP 7, et qui va forcément s’intensifier dans les prochaines semaines suite à la diffusion officielle du langage depuis le début de semaine. La migration de PHP à partir d’un simple langage de script conçu pour construire des pages Web par la programmation à un langage Web très général côté serveur signifie qu’il est utilisé par 8 sites sur 10 côté serveur.

html>

la suite...

Kévin Dunglas (Lapin Blanc) Kévin Dunglas (Lapin Blanc) 2015-12-02T10:34:11+01:00

Making the Symfony PropertyAccess Component 84% faster in 2.8… and counting

Update 12/06/15: I’ve opened a PR making the PropertyAccess Component 84% faster than before. It implements strategies explained at the end of this post.

This PropertyAccess component allows to access to a property of an object (or a to a key of an array) regardless of the access strategy that must be used. It is smart enough to access directly to 

public
  properties and to use getters, setters, issers, adders, removers, magic methods and so on for
private
  and
protected
 ones. It is also allows to access a property trough an object graph using a straightforward notation: 
$propertyAccessor->getValue($rootObject, 'foo.bar.baz');
 .

As you may know, some components of the Symfony framework including Form and the Serializer (see the ObjectNormalizer) rely heavily on it. The JSON-LD normalizer of the API Platform framework also use it intensively. In fact, more than 250+ open source projects rely on the PropertyAccess component (and it has been installed more than 1M times).

It’s a convenient and popular piece of software. But this convenience has a cost: the PropertyAccess component is slow: internally, it uses the PHP Reflection API to guesses what’s the strategy needed to read or write a property.

When using this component in a loop (ex: to normalize a collection of objects to an associative array using the ObjectNormalizer), its slowness become a significant problem.

Here is a benchmark for the PropertyAccess component:

<?php

require 'vendor/autoload.php';

class Foo
{
    private $baz;
    public $bar;

    public function getBaz()
    {
        return $this->baz;
    }

    public function setBaz($baz)
    {
        $this->baz = $baz;
    }
}

use Symfony\Component\PropertyAccess\PropertyAccess;

$accessor = PropertyAccess::createPropertyAccessor();

echo 'Property Access Benchmark'.PHP_EOL;

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    $foo = new Foo();
    $accessor->setValue($foo, 'bar', 'Lorem');
    $accessor->setValue($foo, 'baz', 'Ipsum');
    $accessor->getValue($foo, 'bar');
    $accessor->getValue($foo, 'baz');
}

echo 'Time: '.(microtime(true) - $start).

la suite...

Frédéric Hardy (mageekbox.net) Frédéric Hardy (mageekbox.net) 2015-12-01T12:43:00+01:00

PHP et ./configure

Aujourd’hui, j’ai fait un brew install (je sais, je suis un dingue) qui a mis à jour la bibliothèque icu, utilisée par l’extension int de PHP.

Du coup, PHP est devenu inutilisable sur mon poste de travail puisque j’obtenais systématiquement la sympathique erreur suivante :

# php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.55.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Trace/BPT trap : 5

L’erreur peut semble quelque peu incompréhensible au premier abord, mais l’expérience m’a appris qu’elle veut tout simplement dire que l’exécutable PHP n’est pas capable de localiser la bibliothèque libicui18n.55.dylib à l’emplacement indiqué lors de sa compilation, ce qui est logique vu que brew a supprimé le fichier concerné au profit de libicui18n.56.dylib (et oui, les bibliothèques qui contiennent leur numéro de version dans leur nom sont une plaie).

Et la solution est très simple, puisqu’il suffit de compiler une nouvelle fois PHP depuis ses sources en indiquant le nouveau chemin d’accès à la bibliothèque concernée lors de l’appel à ./configure.

En effet, pour ceux qui ne le sauraient pas, une compilation classique de PHP sous UNIX se fait en trois étapes :

  1. Un appel à ./configure avec diverses options permettant de définir les chemins d’accès aux fichiers ou répertoires nécessaires à la compilation, l’installation et l’exécution de PHP ainsi que les extensions qui doivent être intégrées dans les binaires créés (au passage, ./configure --help est l’ami de ceux qui se lancent dans l'exercice pour la première fois) et qui génère le fichier Makefile correspondant ;
  2. Un appel à make qui utilise le fichier Makefile précédemment généré qui génère les différends binaires ;
  3. Un appel à make install qui provoque l’installation des binaires créés à l’étape précédente ainsi que celle de la documentation et des différents utilitaires associés à PHP (comme phpize qui permet de configurer les extensions PHP pour la version de PHP qui vient d’être installée).

Sauf que je fais une configuration très spécifique de PHP lorsque je le compile et mon appel à `./configure` est donc relativement complexe.

Lorsque je dois compiler PHP, j’utilise donc systématiquement la commande php -i | grep configure pour récupérer la commande configure qui a été utilisée pour compiler la version de PHP actuellement installée sur mon poste.

Mais aujourd’hui, cette version était inutilisable et que PHP n’était donc plus en mesure de me fournir la commande configure que j’avais utilisé pour le compiler.

la suite...

Remi Collet Remi Collet 2015-11-27T14:15:11+01:00

Forum PHP à Paris 2015

De retour du Forum PHP Paris 2015.

Tout d'abord un grand merci à l'AFUP pour l'organisation de ce grand moment pour la communauté, comme toujours, accueil irréprochable.

Cet événement a été, une nouvelle fois, l'occasion de faire de nombreuses et enrichissantes rencontres avec de nombreux développeurs et utilisateurs de PHP.

Cette année exceptionnelle en raison des 20 ans de PHP, des 15 ans de l'AFUP et bien entendu de la sortie imminente de PHP 7:

22976893670_aa78e7414b_o.jpg 

Sur la photo : (en haut) Derick Rethans, Anatol Belski, moi, Zeev Suraski, (en bas) Pierre Joye, Rasmus Lerdorf, Bob Weinand et Nikita Popov.

Plus de photos sur Flickr.

J'ai eu l'opportunité de donner une conférence sur la collaboration entre upstream (projets) et downstream (distribution) avec un point important sur les tests réalisés par le projet Fedora.

Lire le support de cette présentation: Paris2015.pdf.

Les retours me semblent bons, cf fiche joind.id.

J'attends avec impatience les prochaines conférences.

Olivier Mansour (PMSI Pilot) Olivier Mansour (PMSI Pilot) 2015-11-25T14:37:40+01:00

Retour sur le Forum PHP 2015

Encore un évènement autour de PHP qui se termine. Encore un Forum assez exceptionnel pour moi. Beaucoup de rencontres, de débats intéressants et un maximum de partage !

Encore une fois, l’AFUP et les conférenciers ont fait un travail monumental pour nous proposer un évènement de qualité dans un lieu très sympatique avec une ambiance exceptionnelle.

Un évènement très riche en rencontres qui m’a permis d’apprendre de nouvelles choses, d’ouvrir les yeux sur d’autres mais surtout, d’échanger… et de consommer beaucoup de café :)

Jour 1

Le premier jour a été pour moi assez chargé en conférences, même si j’aurais aimé en faire plus. Il y avait pas mal de contenu très intéressant et je vous propose un retour sur celles auxquelles j’ai assisté.

Taylorisme de la qualité logicielle par Jean-François Lépine

Jean-François est un acteur très actif dans la communauté PHP sur les sujets qui touchent à la qualité logicielle, il est d’ailleurs l’auteur de PhpMetrics, un outil permettant de calculer et présenter des métriques relatives à la complexité d’un projet par exemple.

Sa conférence, sous forme de retour d’expérience basé sur ses interventions chez différents clients était, selon moi, très intéressante. Il nous a ainsi présenter sa méthode pour introduire la qualité dans les équipes, les leviers et freins qu’il a identifiés tout au long de son parcours et comment il a évolué dans son processus.

Il a donc abordé la qualité sous différents angles : les tests, l’automatisation, l’industrialisation, la création de normes. Toutes ces choses sont des pistes intéressantes mais ce que j’ai particulièrement retenu de son intervention c’est que l’humain est le principal acteur du mouvement. Sans une implication totale de toutes les personnes dans ce processus, il y a des chances de louper le virage.

Je vous conseille donc vivement de lire ses slides et de lui faire des retours si ces dernières vous ont permis d’avoir une vision différente ou de vous conforter dans ce que vous pensiez.

Merci à Jean-François !

Les flux : méconnus et sous-utilisés par Pascal Martin

Pascal est également un acteur très impliqué et actif dans la communauté PHP Française. Il a entre autres écrit un livre sur l’écriture d’extensions pour PHP et publie régulièrement des rapports sur l’activité au sein des mailing-lists internes de PHP.

la suite...

Pascal Martin (n+1).zéro Pascal Martin (n+1).zéro 2015-11-25T00:00:00+01:00

Les flux : méconnus et sous-utilisés : slides de ma présentation au Forum PHP le 23 novembre 2015

J’ai eu la chance de pouvoir donner une présentation au Forum PHP 2015 à Paris, pour parler des Flux.

Il m’arrive en effet souvent d’en utiliser, dans des cas de figure où on n’y pense pas toujours (par exemple : pour copier un fichier depuis une source distante, pour effectuer un appel d’API, …) et je souhaitais partager mon enthousiasme. Après tout, n’écrire que quelques lignes de code au lieu de plusieurs dizaines, tout en n’utilisant que des fonctionnalités standard de PHP, c’est parfois bien appréciable !


Les slides que j’ai utilisés comme support sont disponibles en ligne1 : Les flux : méconnus et sous-utilisés, Forum PHP Paris, 23 novembre 2015.


Encore merci à l’AFUP pour son accueil et l’immense quantité de super boulot effectué pour organiser ces deux jours ! Merci également à ceux d’entre vous qui étaient présents lors de cette présentation et/ou qui sont venus me rencontrer ensuite !



  1. Pour ceux qui voudraient plus d’informations que les slides en eux-même, j’ai noté quelques points dans les notes du présentateur, accessibles via la touche s

Kévin Dunglas (Lapin Blanc) Kévin Dunglas (Lapin Blanc) 2015-11-24T13:58:57+01:00

My slides about API Platform from AFUP’s Forum PHP 2015

My slides from this morning at Forum PHP Paris about API Platform:

Open the slides in full screen

Perrick Penet (onpk.net) Perrick Penet (onpk.net) 2015-11-24T13:44:07+01:00

Livre Blanc de Stratégie Afupienne

Lors des Lightning Talks de l'édition 2015 de l'AFUP, j'ai eu l'occasion de présenter un projet de Livre Blanc de Stratégie Afupienne... Bien sûr le contexte très particulier de ce novembre 2015 y est pour quelque chose : âme sensible, merci de tenir compte d'un humour un peu sombre.

Et pour ceux qui veulent réfléchir à comment l'AFUP peut aider la communauté francophone de PHP, il y a une boîte email : francophonie @ afup . org.


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