jeudi 26 novembre 2015

Symfony 2.7.7 disponible

Symfony 2.7.7 est disponible, avec 23 bugs corrigés, dont 2 failles de sécurité :
  • CVE-2015-8124 : connexion avec un utilisateur, en utilisant son identifiant de session, stocké sans le cookie "Remember me"
  • CVE-2015-8125 : remote timing attacke, en utilisant également le cookie du "Remember me"
Les 2 failles ci-dessus ont également été corrigées dans Symfony 2.3.35 et 2.6.12, mais pas dans les versions 2.4 et 2.5 (qui ne sont plus maintenues).

Changelog Symfony 2.7.7

steevanb/gitscripts 2.4.0 disponible

steevanb/gitscripts 2.4.0 est disponible, avec l'ajout du paramètre --force pour le script deluntrackedbranch.sh.

Avant la 2.4.0, par défaut, deluntrackedbranch.sh effectuait réellement la suppression des branches non traquées par origin.
Maintenant, pour effectuer la suppression, il faut ajouter le paramètre --force.
Sans ce paramètre, la liste des branches non traquées sera affichées, sans suppression effectuée.

Changelog 2.4.0

lundi 21 septembre 2015

steevanb/gitscripts 2.3.0 disponible

steevanb/gitscripts 2.3.0 est disponible, avec l'ajout du script deluntrackedbranch.sh.

Ce script liste les branches du remote origin, les compare avec les branches locales, et supprime les branches locales qui n'existent pas sur origin.
C'est assez utile quand on a avancé dans un projet, et qu'on a beaucoup de branches en locale qui ont été mergées via un outil quelconque (GitLab, GitHub, etc) et qui n'existent plus.

Changelog steevanb/gitscripts

steevanb/sf2-form-utils 1.3.1 disponible

steevanb/sf2-form-utils 1.3.1 est disponible.
Pour rappel, cette librairie permet à la méthode FormType::buildForm() d'être orientée objet, donc de profiter de l'auto-complétion et de rapidement savoir les configurations disponibles pour chaque type de champ.

  • Les setters avec un paramètre de type bool ont une valeur par défaut à true (par exemple, setCascadeValidation(true) peut être directement appelé setCascadeValidation()).
  • La méthode getFieldEntity()->setRepositoryMethod() permet de facilement appeler une méthode de repository, sans avoir à écrire la closure.
  • Les méthodes setAutofocus() et getAutofocus() ont été ajoutées aux types de champs correspondants, ainsi que setPlaceholder() et getPlaceholder().

Changelog steevanb/sf2-form-utils 1.3.1

Symfony 2.7.4 disponible

Symfony 2.7.4 est disponible, avec 40 bugs corrigés, notamment pour la compatibilité PHP 7.

Un gros travail a été effectué pour la compatibilité avec Twig 2.0, ce qui rend Symfony 2.7.4 entièrement compatible avec Twig 1.x et 2.x.

Si vous êtes sur la branche 2.7 de Symfony, vous êtes encouragés à passer à cette version.

Changelog Symfony 2.7.4

lundi 3 août 2015

steevanb/sf2-form-utils 1.1.0 disponible

steevanb/sf2-form-utils est disponible en version 1.1.0.
Cette librairie, utilisée dans un projet Symfony2, permet à la méthode FormType::buildForm() d'être orientée objet, au lieu d'utiliser un tableau dont on connait pas forcément les clefs / valeurs possibles.

class FooType extends AbstractType { use Fields; public function buildForm(FormBuilderInterface $builder, array $options) { // appel obligatoire pour sauvegarder $builder, // utilisés par les méthodes Fields::getFieldXXX $this->setBuilder($builder); // maintenant, vous pouvez appeler les méthodes $this->getFieldXXX(), // en finissant toujours par un appel à add() // tous les paramètres des méthodes getFieldXXX() sont différents, // pour demander les paramètres requis et les plus utilisés $this->getFieldText('name', 'Name')->add(); // un autre exemple avec diverses configurations $this ->getFieldEmail('email', 'E-mail') ->setRequired(false) ->setEmptyData('default@mail.com') ->setTrim(false) ->add() ; } }
steevanb/sf2-form-utils sur github

Symfony 2.7.3 disponible

Symfony 2.7.3 est disponible, avec 18 bugs corrigés, notamment pour la compatibilité PHP 7 et HHVM 3.3.

Si vous êtes sur la branche 2.7 de Symfony, vous êtes encouragés à passer à cette version.

Changelog Symfony 2.7.3

mercredi 10 juin 2015

php-cs-fixer intégré dans PHPStorm

php-cs-fixer, l'outil de réécriture de code PHP pour respecter des normes de dev, est sorti en version 1.0 en novembre 2014.
Il permet de réécrire du code selon certaines configurations, par exemple short_tag qui ne permet pas l'utilisation des short tags (), eof_ending qui ajoute une ligne vide en fin de fichier, etc.

Installation
wget http://get.sensiolabs.org/php-cs-fixer.phar -O php-cs-fixer chmod a+x php-cs-fixer sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

Intégration dans PHPStorm

php-cs-fixer peut être automatiquement appelé, à chaque sauvegarde d'un fichier PHP, dans PHPStorm.
Il faut aller dans Files / Settings / Tools / File Watchers, cliquer sur le + vert en haut à droite, choisir <custom>.
Dans File type : choisir PHP files.
Dans Program : indiquer le lien vers php-cs-fixer (/usr/local/bin/php-cs-fixer dans notre exemple).
Dans Arguments : fix $FilePath$ --level=symfony

Personnellement, je change quelques directives de réécriture, ce qui me done pour Arguments : fix $FilePath$ --level=symfony --fixers=concat_with_spaces,-multiline_array_trailing_comma,-phpdoc_params,-align_equals.

php-cs-fixer documentation

lundi 25 mai 2015

steevanb/gitscripts passe à la version 2.2.2

steevanb/gitscripts, qui contient quelques scripts bash pour faciliter des opérations avec git, passe en version 2.2.2, avec ces modifications (par rapport à la 2.1.0) :

  • Ajout de rebase.sh : si vous avez des modifications, effectue un git stash, ensuite git fetch, git rebase -p origin/foo, puis git stash pop si besoin
  • Toutes les commandes executées sont surlignées en violet
  • Ajout d'un changelog

github.com/steevanb/gitscripts

Plugins Symfony2 pour PHPStorm

PHPStorm, édteur PHP développé par JetBrains, peut être grandement amélioré par des plugins, disponibles via le menu Files / Settings / Plugins et le site http://plugins.jetbrains.com

Symfony2
Permet d'avoir l'auto-complétion sur énormément de choses : identifiants de service, routes, forms, repositories ...
Télécharger et installer

PHP Annotations
Permet d'avoir l'auto-complétion sur toutes les annotations, par exemple @ORM\OneToMany(), @Assert\NotBlank(), etc.
Télécharger et installer

Clickable views
Permet d'avoir un CTRL + click sur tous les liens vers des vues : dans des controllers (par exemple avec $this->render()), dans des vues (par exemple {% extends %}, {% include %}), etc.
Télécharger et installer

Symfony 2.6.7 disponible

Symfony 2.6.7 est disponible, et corrige 39 bugs.

Si vous êtes sur la branche 2.6 de Symfony2, il est recommandé de passer à cette version.

http://symfony.com/blog/symfony-2-6-7-released

Symfony 2.3.28 disponible

Syfmony 2.3.28 ( l'actuelle LTS, en attendant la 2.7 qui devrait sortir en mai 2015) est disponible, et corrige 16 bugs.

Si vous êtes sur la branche 2.3 LTS de Symfony2, il est recommandé de passer à la version 2.3.28.

Changelog Symfony 2.3.28

PHP 5.6.9 disponible

PHP 5.6.9 est disponible, avec 19 bugs corrigés, et la mise à jour de pcrelib en 8.37.

Si vous êtes sur la branche 5.6 de PHP, il est recommandé de mettre à jour vers cette version.

Changelog PGP 5.6.9

mercredi 29 avril 2015

steevanb/gitscripts passe à la version 2.1.0

Le dépôt github steevanb/gitscripts passe en version 2.1.0, avec l'ajout du script push.sh.

Ce script est très simple, il permet d'effectuer un push uniquement de la branche courante, vers origin.
C'est une sorte de raccourci, pour éviter de taper git push origin foo.

Rappel : pour créer un alias vers ce script, vous devez éditer votre fichier ~/.bashrc, et ajouter cette ligne :
alias gp="/foo/bar/push.sh"
Ensuite, vous devez recharger le fichier bashrc, avec la commande source ~/.bashrc.
Désormais, la commande gp effectue un push, uniquement de la branche courante, vers origin.

mardi 28 avril 2015

Commandes lancées par composer

Composer, largement utilisé par les développeurs PHP pour gérer leurs dépendances, permet d'appeler des méthodes statiques lors d'événements lancés par Composer (post-install-cmd et post-update-cmd étant les plus utilisés, voir la liste des événements).


Comment faire pour passer des paramètres à ces méthodes statiques ?
La signature de la méthode qui sera appelée est la suivante :
foo(\Composer\Script\CommandEvent $event).

self::getOptions($event) permet de récupérer tout ce qui a été indiqué dans la clef extras de composer.json (par exemple symfony-app-dir, symfony-web-dir etc). Vous pouvez donc ajouter ici des options, et les relire dans votre commande.


Exemple : la commande app/console assets:install accepte le paramètre --symlink, et depuis Symfony 2.6, ne lève plus d'exception si le serveur ne gère pas les liens symboliques. Donc, elle doit toujours être appelée avec --symlink comme paramètre.

Composer appelle bien Sensio\Bundle\DistributionBundle\Composer::installAssets(), mais ne lui passe pas le paramètre --symlink. Il faut donc ajouter symfony-assets-install: symlink (ou relative) dans la clef extras de votre composer.json :
# composer.json { # --- "extras": { # --- "symfony-assets-install": "symlink" } }

dimanche 5 avril 2015

PHP 5.6.7 disponible

PHP 5.6.7 est disponible, avec 32 bugs corrigés et des ajouts de contantes pour libcurl.
La branche 5.6 de PHP commence a être vraiment stable, et utilisable en environnement de production.

Voir le changelog

Symfony 2.6.6 disponible

Symfony 2.6.6 est disponible, avec 15 corrections de bug et 2 modifications pour la sécurité.

Une faille très importante, touchant toutes les versions de Symfony2, a été corrigée dans les versions 2.3.27, 2.5.11, et 2.6.6 (les versions précédentes n'étant plus maintenues). Cette faille permet d'injecter du code PHP, et de le faire exécuter par le serveur.
Plus d'informations sur la faille CVE-2015-2308


Si vous êtes sur la branche 2.6.x de Symfony, il est fortement conseillé de mettre à jour vers la version 2.6.6.

Voir le changelog

Symfony 2.5.11 disponible

Symfony 2.5.11 est disponible, avec 2 corrections de sécurité très importantes.

Une des deux failles, touchant toutes les versions de Symfony2, a été corrigée dans les versions 2.3.27, 2.5.11, et 2.6.6 (les versions précédentes n'étant plus maintenues). Cette faille permet d'injecter du code PHP, et de le faire exécuter par le serveur.
Plus d'informations sur la faille CVE-2015-2308


Si vous êtes sur la branche 2.5.x de Symfony, il est fortement conseillé de mettre à jour vers la version 2.5.11.

Voir le changelog

vendredi 20 février 2015

PHP 5.6.6 disponible

PHP 5.6.6 est disponible, avec ces modifications :
  • 27 bus corrigés
  • Suppression de la gestion des headers sur plusieurs lignes, dépréciée par RFC 7230

Si vous êtes déjà sur une version 5.6.x, il est fortement conseillé de passer en 5.6.6.

Source : http://php.net/ChangeLog-5.php#5.6.6

PHP 5.5.22 disponible

PHP 5.5.22 est disponible, avec ces modifications :
  • 24 bugs borrigés
  • Suppression de la gestion des headers sur plusieurs lignes, dépréciée par RFC 7230

Vous êtes vivement encouragés à mettre à jour votre version de PHP vers celle-ci, si vous êtes sur une version 5.5.x.

Source : http://php.net/ChangeLog-5.php#5.5.22

Symfony 2.6.4 disponible

Symfony 2.6.4 est disponible, avec ces modifications :
  • Pas loin de 40 bugs corrigés
  • Le cache du container est maintenant rafraîchit quand on modifie les paramètres d'environnement
  • On peut désormais donner un tableau de fallbacks pour la langue, au lieu d'une seule avant

Source : http://symfony.com/blog/symfony-2-6-4-released

vendredi 23 janvier 2015

PHP 5.5.21 disponible

PHP 5.5.21 est disponible, avec ces modifications :
  • 32 bugs corrigés
  • une mise à jour de crypt_blowfish (possibilité de cryptage via crypt()) en version 1.3

Il est conseillé de mettre à jour vos serveur vers cette version, si vous êtes déjà sur une 5.5.x.

Voir le ChangeLog de PHP 5.5.21

PHP 5.6.5 disponible

PHP 5.6.5 est disponible, avec ces modifications :
  • 33 bugs corrigés
  • 4 ajouts mineurs (notamment DateInterval::getStartDate(), DateInterval::getEndDate() et DateInterval::getDateInterval())
  • une mise à jour de crypt_blowfish (possibilité de cryptage via crypt()) en version 1.3

Il est conseillé de mettre à jour vos serveur vers cette version, si vous êtes déjà sur une 5.6.x.

Voir le ChangeLog de PHP 5.6.5

mercredi 14 janvier 2015

Symfony 2.7 et Twig

Une nouveauté de Symfony 2.7 (et donc de Symfony 3.0) sera de rendre Twig "First-class citizen".
Dans les faits, le niveau d'abstraction donné par le service templating, pour pouvoir utiliser des templates au format PHP ou Twig, ne sera plus utilisé. On utilisera directement le service twig.

L'intérêt et les performances (48 classes chargées en moins et 30% de mémoire gagnée dans l'exemple) sont très bien expliqués dans cet article.

C'est peut-être la plus grosse amélioration de performances de la 2.7, et ayant le moins d'impact, la majorité des développeurs utilisant Twig.

jeudi 8 janvier 2015

Symfony 2.6.3 disponible

Symfony 2.6.3 (ne cherchez pas la 2.6.2, elle a duré moins d'une journée, à cause d'un bug) est disponible.

Evidemment, hier je vous disais que la version 2.6 avait réussi son lancement, parcequ'il n'y avait eu qu'une version 2.6.1 qui ne corrigeait que quelques bugs.
Voilà que la 2.6.3 sort quelques heures après mon billet, et corrige 48 bugs !

Voir les notes de mise à jour de Symfony 2.6.3

mercredi 7 janvier 2015

Composer 1.0.0-alpha9 disponible

Composer, gestionnaire de dépendances PHP très connu, est passé en alpha9 le 7 décembre 2014.

Quelques modifications apportées par l'alpha9 :

  • Ajout d'une option remove, qui fait l'inverse de require, donc qui supprime une dépendance
  • Ajout d'un warning lors de l'installation d'une dépendance qui n'est plus maintenue
  • Ajout d'une option clear-cache pour vider le cache, plus besoin de le faire à la main (enfin !)
  • Amélioration des performances pour la résolution des dépendances, le gros point noir quand on commence à avoir un composer.json bien rempli

Pour mettre à jour votre composer, exécutez la commande composer self-update.

Liste des modifications de toutes les versions

Les changements apportés par Symfony 2.6

Symfony 2.6 est disponible depuis le 29 novembre 2014. Cette version majeure apporte environ 100 nouvelles fonctionnalités et améliorations.
Généralement, je ne préconise pas de sauter sur les mises à jour majeures, que ce soit pour des outils de développement ou des frameworks, mais d'attendre un peu que les problèmes principaux soient corrigés. Mais force est de constater que Symfony 2.6 a plutôt bien réussi son lancement, car seule une petite mise à jour corrigeant 4 bugs a été faite depuis.

Quelques différences importantes entre Symfony 2.5 et 2.6

  • Nouveau composant pour dumper des variables et effectuer du debug : VarDumper et DebugBundle
  • Thème Bootstrap intégré avec les Forms. L'idée est de faciliter l'affichage des formulaires pour les chartes graphiques basées sur Bootstrap
  • Ajout d'helpers sur Controller : redirectToRoute(), addFlash(), isGranted(), denyAccessUnlessGranted(), isCsrfTokenValid()
  • Les requêtes Ajax apparaissent dans le Profiler (la barre d'outils affichée en bas, en développement)

Liste des modifications entre Symfony 2.5 et 2.6
Comment passer de Symfony 2.5 à 2.6
Liste des commits entre Symfony 2.5 et 2.6 Beta 1

Symfony 2.5.9 disponible

Symfony 2.5.9 vient de sortir, avec 29 bugs corrigés.
Quelques problèmes de session (gestion des divers bugs en fonction de la version de PHP), un problème sur la commande cache:clear, la gestion des IPs, etc.

Voir les modifications de la version 2.5.9