planetePHP.fr
PHP Internals en français PHP Internals en français 2015-03-26T08:35:45+01:00

RFC: Generator Return Expressions

Voici une première RFC qui visait à élargir le périmètre fonctionnel des générateurs ajoutés avec PHP 5.5 :

Note : cette proposition conditionne la RFC Generator Delegation, qui a été rédigée quelques jours plus tard.

Cette RFC proposait de permettre aux fonctions générateur l’utilisation de return avec une valeur (ce qui provoque aujourd’hui une Fatal Error). Une méthode Generator::getReturn() serait alors ajoutée pour permettre l’obtention de cette valeur de retour. Elle ne pourrait bien sûr être appelée qu’une fois la fonction génératrice terminée.

En somme, cela permettrait d’avoir une vraie valeur de retour explicite pour les générateurs, plutôt que de considérer que la dernière valeur yieldée joue ce rôle.

Les votes ont été ouvert le 09 mars pour être clôturés le 16 Mars 2015. Nous avons exprimé un avis positif sur internals@.
Et cette RFC a été acceptée à l’unanimité (33 votes « pour » et 0 vote « contre »).

AFUP AFUP 2015-03-26T00:00:00+01:00

Développeurs marseillais, la toute fraîche antenne AFUP Marseille vous attend

C'est en fin d'année 2014 que la motivation est venue, sous l'impulsion de Maxime Longuet et Romain Cambien, désormais élus comme coordinateurs de cette antenne marseillaise. 

Ingénieur de formation, Maxime est passionné par le réseau, l'administration système et le développement. Il fait ses premiers développements en PHP 4.1, et gère des plateformes LAMP depuis 2001 en tant que CTO d'un hébergeur marseillais. Maxime crée ensuite sa société, ITIKA, en 2004. Spécialisé dans le Logiciel Libre, il développe aujourd'hui sur ZF2 en tant que Zend Solution Partner.
À titre personnel il s'engage dans plusieurs projets communautaires : membre fondateur de l'association Libertis, il a participé par le passé à l'association Dolibarr, et il est aujourd'hui membre de l'association PostgreSQLFR. Après plusieurs années à attendre qu'un groupe PHP se crée à Marseille, il décide de lancer lui-même ce usergroup fin décembre 2014, qui connait un succès immédiat.

Quant à Romain, après des études d'informatique, passionné de Web, il s'oriente rapidement vers PHP puis vers Symfony. Touche à tout, il s'occupe aussi des infrastructures serveurs. Il co-fonde en 2011 la société Riverline dont il est le directeur technique. Lorsque Maxime lance l'idée d'un usergroup PHP sur Marseille, il saute sur l'occasion pour le rejoindre !

Mathieu et Romain vous attendent donc nombreux lors des prochains événements AFUP Marseille : suivez le blog de l'antenne, et abonnez-vous à son compte Twitter pour ne rien manquer !

PHP Internals en français PHP Internals en français 2015-03-25T08:30:23+01:00

RFC: Make empty() a Variadic

Voici une courte RFC autour de la construction empty() :

Cette RFC partait de l’idée qu’il est commun de vouloir utiliser empty() sur plusieurs variables, en vue de déterminer si l’une d’entre elles est vide ou si aucune ne l’est ; ce qui passe actuellement par une portion de code de ce type :

if (empty($a) || empty($b) || empty($c)) {
    // Une des variable est vide
}

if (!empty($a) && !empty($b) && !empty($c)) {
    // Aucune variable vide
}

Pour simplifier l’écriture de ce type de test, cette RFC proposait de rendre empty() variadique (comme l’est déjà isset()), ce qui permettrait d’utiliser l’écriture suivante :

if (empty($a, $b, $c)) {
    // Une des variable est vide
}

if (!empty($a, $b, $c)) {
    // Aucune variable vide
}

Passer plusieurs expressions à empty() reviendrait à effectuer un OR entre empty() de chaque expression.

Les votes ont été ouverts le 7 mars 2015 pour être clôturés le 21 mars. Considérant que cette proposition apporterait un fort risque de confusion (est-ce qu’on vérifie qu’au moins une donnée est vide ? Ou est-ce qu’on vérifie que toutes les données sont vides ?), nous avons exprimé un avis négatif sur internals@.

Une majorité des 2/3 était requise pour l’adoption de cette RFC et elle a été rejetée, avec 26 votes « pour » et 26 votes « contre ».

PHP Internals en français PHP Internals en français 2015-03-24T08:30:58+01:00

RFC: Context Sensitive Lexer

La RFC: Context Sensitive Lexer partait du constat qu’il existe actuellement 64 mots clefs réservés par PHP et que certains d’entre eux seraient très utiles en tant que noms de méthodes, pour définir des API claires côté utilisateur.

Elle proposait donc de modifier l’analyse du code PHP afin de disposer d’une analyse lexicale sensible au contexte, permettant l’utilisation de mots clefs ; en se limitant pour l’instant au périmètre de la programmation objet :

// Le code suivant devient possible:
interface Collection
{
    public function forEach(callable $callback);

    public function list();
}

// Mais pas le suivant:
function list() {/* */}

De plus, cette RFC permettrait également de limiter les problèmes de rétro-compatibilité à l’avenir, lorsque PHP réservera de nouveaux mots clefs.

Considérant que pouvoir utiliser des mots-clefs comme noms de classes ou de méthodes était intéressant, nous avons (à l’unanimité !) posté en ce sens sur internals@.
Cette RFC a été acceptée pour PHP 7.0, avec 36 votes « pour » et 12 votes « contre ».

 

 

Guillaume Bretou (PHPSymfony) Guillaume Bretou (PHPSymfony) 2015-03-23T22:40:11+01:00

[PHP][Doctrine 2] Détecter le changement d'état un objet Doctrine

Avec les applications modernes, on est souvent amené à gérer des entités qui ont des cycles de vie (établis avec des diagrammes d'états - transitions). Lors d'un changement d'état sur un élément, on en notifie un autre qui lui-même réalise des actions, etc... Cela permet de rendre les applications dynamiques.

Dans le cadre d'un projet en Symfony 2 avec Doctrine 2 pour un client, j'ai du réaliser ce type de traitement. Au moment du changement d'un état sur un objet, je voulais créer une nouvelle ligne dans une autre table après la sauvegarde (en post traitement).

Au moment de mes recherches pour trouver la meilleure façon de faire, je n'ai pas trouvé de solutions simples, à ma grande surprise car je pensais que ce besoin était récurrent. La compléxité réside dans le fait que les couples anciennes / nouvelles valeurs sont uniquement disponibles au preUpdate. On me proposait alors de réaliser mon traitement au preUpdate mais cela n'est pas une bonne chose : c'est d'ailleurs écrit dans la documentation Doctrine 2 : "
  • Any calls to EntityManager#persist() or EntityManager#remove(), even in combination with the UnitOfWork API are strongly discouraged and don’t work as expected outside the flush operation.
". On peut s'en sortir, mais ca fait un peu bidouille.

J'ai donc trouvé une solution avec un exemple qui me semble un très bon compromis. Dans cette solution, on utilise un EventSubscriber qui écoute les évènements de preUpdate et de postUpdate. En preUpdate, on détecte le changement d'état sur l'entité Product : on compare les anciennes et les nouvelles valeurs du statut de l'entité. Si le changement est trouvé, alors, on conserve l'information dans l'objet entité en question via un simple attribut de classe. Pas besoin d'ajouter cette colonne dans la base de données. Puis, en PostUpdate, on réalise le traitement nécessaire. Voici un exemple de code : https://gist.github.com/anonymous/d2d238e233ea044ce891



Gilles Février Gilles Février 2015-03-23T14:33:01+01:00

Le programme du PHP Tour 2015 (Luxembourg) est en ligne !

Le PHP Tour, dont c’est déjà la quatrième édition en 2015 (après Lille, Nantes et Lyon), fera halte au Luxembourg. Il se déroulera les 12 et 13 mai au Centre Culturel de Rencontre à l’Abbaye de Neumünster au Luxembourg. Le programme définitif est désormais en ligne. Rien de moins que 28 conférences sont prévues sur … Continuer la lecture de Le programme du PHP Tour 2015 (Luxembourg) est en ligne !
Kévin Dunglas (Lapin Blanc) Kévin Dunglas (Lapin Blanc) 2015-03-23T10:31:59+01:00

Symfony Live 2015 : Construire des applications API-centric avec Symfony

Symfony Live 2015

Je donnerai une conférence de 40 minutes au Symfony Live 2015 qui se déroulera le 9 avril à la Cité Internationale Universitaire de Paris.

J’y parlerai de la conception et du développement d’applications construites autour d’une API REST :

Au cours de ce talk, je présenterai une architecture moderne qui permet de construire des applications performantes, évolutives et interopérables :

Le talk sera didactique et accessible aux développeurs Symfony de tous niveaux. La construction d’une micro-application suivant cette architecture sera présentée pas à pas.

 17 autres conférences atuour de Symfony auront lieu lors du même évènement. Les billets sont en vente sur le site du Symfony Live.

 

AFUP AFUP 2015-03-18T00:00:00+01:00

Le programme du PHP Tour Luxembourg 2015 est sorti

Deux jours de conférences et une journée d'ateliers vous attendent les 12 et 13 mai prochains à l'Abbaye de Neumünster, à Luxembourg-Ville.

Pour cette édition hors des frontières de France, les conférences anglophones prennent une belle place dans le programme : près de la moitié d'entre elles seront dans la langue de Shakespeare. Pas d'inquiétude cependant pour ceux que l'anglais effraie : il y a toujours un talk en français programmé en face d'une conférence anglophone. 

Comme l'indiquait l'appel à conférenciers, une partie de la programmation sera tournée vers le Cloud : son coût, sa sécurité, son installation... Vous saurez tout ! Mais le programme se penche aussi sur le langage (notamment avec Julien Pauli et son "En route vers PHP7" !) et des retours d'expérience (Arté, Canal+, Mediapart...).

Le mercredi 13 verra des ateliers organisés en parallèle des confs. Le matin, Manuel Silvoso vous propose de vous initier, en petit groupe et pendant 3h, à la sécurité des applications web. L'après-midi, Patrick Allaert vous aidera à créer des extensions PHP. Ces deux ateliers sont sur inscription,et réservés aux visiteurs du PHP Tour Luxembourg 2015. 

Ce PHP Tour se déroule alors même que nous fêtons cette année les 15 ans de l'AFUP et les 20 ans de PHP. Il y a fort à parier que nous vous réservons encore quelques surprises, et que nous célébrerons ces anniversaires comme il se doit les 12 et 13 mai 2015. Rejoignez-nous

PHP Internals en français PHP Internals en français 2015-03-16T08:30:26+01:00

RFC : Improve array to string conversion

Voici une RFC qui tourne autour de la conversion de tableaux (array) en chaînes (string) : Improve array to string conversion

Cette RFC partait du constat que, aujourd’hui, convertir un array vers une string entraîne la levée d’une E_NOTICE et donne « Array » comme résultat… Autrement dit, une chaîne peu utile et seulement une semi-erreur.

Elle proposait au départ deux alternatives (opposées) visant à éliminer ce comportement problématique :

  • Interdire totalement la conversion array → string en levant une « catchable fatal error« , comme c’est déjà le cas pour la conversion object → string pour les classes n’ayant pas de méthode __toString().
  • Supporter réellement la conversion arraystring, en déterminant et implémentant un algorithme réalisant la conversion.

Après discussions sur internals@, la seconde option a été supprimée avant l’ouverture des votes, qui n’ont donc porté que sur la première.

Considérant que la conversion array → string n’était que rarement voulue et correspondait quasiment toujours à des cas de bugs, nous avons indiqué sur internals@ que nous étions en faveur de cette proposition.
La RFC a finalement été acceptée, avec 34 votes « pour » et 10 votes « contre ».

 

 

BastNic's Blog BastNic's Blog 2015-03-15T15:30:00+01:00

2015

Zéro billet en 2013, un en 2014, ce blog a beau avoir dépassé les dix ans, il n'en est pas moins complètement déserté.

Avant de vous parler de ce 2015 me réserve, rapide débrief de 2014 :

Mariage_-_Clare_et_Bastien.jpg

  • Claire et moi sommes maintenant mariés ! Tout a été super pour cette unique journée.
  • J'ai eu l'honneur d'être conférencier aux cycles de conférences PHP Tour, SudWeb, Forum PHP et Paris Web. Les quatre conférences que je suis assidument depuis si longtemps.
  • Après JoliCode en 2012, deuxième création d'entreprise avec Cap Collectif.
  • J'avais arrêté le sport en 2009 au moment de quitter Bordeaux pour monter sur Paris. Ma situation se stabilisant, j'ai enfin pu m'y remettre. Je me demande maintenant comment j'ai fait tout ce temps sans réelle dépense physique…

Et donc, pour cette année 2015 :

livre-dette-technique-bastien-jaillot.jpg

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