Salut à tous, petit article rapide concernant la sélection de la version de PHP sur les hébergements de OVH pour la console SSH. Tout d’abord, présentons un peu les choses, lorsque l’on vérifie la version de PHP en SSH, voici ce que l’on obtient :

PHP 4.4.9 (cgi) (built: Apr 20 2012 18:34:17)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

Ouch, PHP 4, c’est vieux, très vieux, pour info, la fin du support date de Août 2008 !

J’ouvre un petit ticket chez OVH et le technicien me donne la réponse, précieux sésame pour utiliser composer et la console de Symfony 2 :

Pour accéder à une commande en version 5.4 de php depuis le ssh, vous devez
donc mettre en place cette ligne de commande suivie de votre script.php

php.ORIG.5_4 -c /usr/local/lib/php.ini-2 SCRIPT.php

Donc, je refais mon test :

PHP 5.4.37 (cgi-fcgi) (built: Feb  9 2015 17:23:54)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with the ionCube PHP Loader v4.5.2, Copyright (c) 2002-2014, by ionCube Ltd., and
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

Nickel, ça marche, je me suis ensuite dit « ça doit marcher pour les autres versions aussi », c’est en partie vrai, les versions que j’ai trouvés sont php.ORIG.5_2, php.ORIG.5 (PHP 5.2) et php.ORIG.5_3.

Enfin, voici un petit raccourci (à ajouter dans le ~/.bash_profile par exemple) pour avoir la version que l’on veux via la commande php : alias php="php.ORIG.5_4".

UPDATE : Bon en fait c’est pas génial car ce n’est pas la version CLI de PHP…

Lors du développement du site de l’association Proxgroup, j’ai été confronté à un soucis d’envergure, il été nécessaire d’avoir une route qui attrapent toutes les urls car dans mon application, une page peut avoir /unepage mais aussi /undossier/unepage comme url, hors l’option path ne permet pas ce genre de chose facilement, après quelques recherches sur le net, j’ai trouvé l’option pattern qui permet cela :

proxgroup_site_page:
    pattern: /{_locale}/{slug}
    defaults: { _controller: ProxgroupSiteBundle:Site:page, _locale: 'fr' }
    requirements:
        _locale: %available_locale%
        slug: ".+"

Note surprenante : il est impossible de mettre une expression régulière hors des {tag}, pour contourner ce soucis, il faut créer un tag que l’on n’utilise pas mais qui me permet d’ajouter une expression régulière où l’on veux.

Si vous avez une meilleure solution, laissez un com’