• Technique
PHP Tour 2017 à Nantes, deuxième jour de conférence !

  • Technique
PHP Tour 2017 à Nantes, retour sur le premier jour de la conférence...

#PHPTour, retour sur le premier jour de la conférence.

  • Technique
"php-crashers" : exemples de scripts qui déclenche une segmentation fault en PHP

Erreur de segmentation, qu'est-ce que c'est et dans quels cas sont elles déclenchées en PHP ? Un dépôt Github présente quelques exemples détaillés...

  • Développement
  • Technique
PHP Coding Standard Fixer ou comment nettoyer les namespaces inutiles en PHP ?

Aujourd'hui il existe des outils pour aider à produire un code propre et respectant une mise en forme normée, pourquoi ne pas essayer !

  • Technique
Désactivation de certaines fonctionnalités des navigateurs sur les sites non "sécurisés"

  • Serveur
  • Technique
Let’s Encrypt : une nouvelle autorité de certification libre, automatisée et ouverte

  • Développement
  • Technique
Comment cloner un objet en JavaScript

Toute assignation créé une référence et pas une copie. Ce comportement est standard dans la programmation mais en JavaScript on se perd facilement...

  • Serveur
  • Technique
Comment en finir avec l'édition du fichier hosts ?

Comment configurer un serveur DNS simple dans un environnement de développement ? En utilisant dnsmasq, un outil efficace qui permet de s'affranchir de l'édition du fichier hosts.

  • Développement
  • Technique
PHP 7: Installation sur une distribution Ubuntu Server

Plus d'excuse maintenant pour ne pas installer et utiliser PHP 7 sur votre serveur Ubuntu. Grâce à ce guide, vous pouvez suivre une procédure fiable et officielle sans passer par une compilation personnalisée.

  • Développement
  • Technique
Symfony, Composer et la configuration `platform`

Une erreur du type `overriden by "config.platform.php"` en installant vos dépendances composer ? Venez comprendre la configuration qui en est la cause et comment la dompter !

  • Développement
  • Technique
  • Tests unitaires
Atoum: Comment automatiser l'utilisation du fichier de `bootstrap` ?

J'ai utilisé atoum sur un projet récemment. Il m'a permis de découvrir une autre approche des tests unitaires, plus simple et efficace

  • Technique
On a testé Firefox Developer Edition !

Mozilla vient de présenter sa dernière nouveauté, Firefox Developer Edition. C'est un outil puissant qui intègre les dernières innovations pour aider les développeurs web au quotidien.

  • Technique
Contrôler l'installation des mises à jour de Wordpress

Il est intéressant de pouvoir limiter l'installation des mises à jour à certains utilisateurs pour contrôler les problèmes techniques qui peuvent en découler.

  • Technique
L'Ipad et les problèmes de redimensionnement des images hors viewport

L'Ipad et safari sur iOS n'autorisent pas par défaut l'application d'une image de fond qui dépasse du viewport, voici quelques astuces pour contourner ce problème.

  • Design
Prendre les bonnes décisions pour une interface plus efficace

Vous vous demandez pourquoi certaines interfaces web plaisent aux internautes et d’autres pas ?

  • Stratégie
Comment rédiger un brief efficace pour obtenir ce que vous voulez !

Vous souhaitez que votre projet aboutisse à la réalisation que vous imaginez ?

Mots Clés

  • Développement
  • Technique

23 février 2016 par Stéphane Hulard

Symfony, Composer et la configuration `platform`

J’ai installé, aujourd’hui, pour un nouveau projet client, une version de Symfony 2.8. C’est la dernière LTS, supportée jusqu’en novembre 2018, une valeur sûre.J’utilise encore la méthode d’installation avec la commande create-project de Composer car j’y suis habitué.

composer create-project symfony/framework-standard-edition "project" "2.8"

Je configure ensuite mon environnement et commence à installer mes dépendances quand j’obtiens un message étrange. J’essaie d’installer le paquet “ovh/ovh”, dépendant de Guzzle 6, et il me dit que ma version de PHP n’est pas compatible. Pourtant j’utilise une version récente et supportée, la 5.6.18. Je supprime, relance l’installation mais rien n’y fait…

Je pars donc à la recherche d’une solution sur le web et trouve rapidement la solution. Mon problème vient de la configuration platform de mon fichier composer.json (ou plutôt celui de Symfony 2.8 par défaut).

Je me rends compte qu’il est possible de surcharger la configuration de l’environnement en cours sur Composer. L’objectif est de permettre de simuler l’installation des dépendances de production, ou définir la version cible dans la configuration.

Exemple:

{
    config: {
        "php": “5.3.9”
    },
    ...
}

Dans votre fichier composer.json ce petit morceau de code va définir que la version PHP en cours d’utilisation est une 5.3.9 quelque que soit celle installée sur le système.
Si jamais vous installer des dépendances nécessitant une version supérieure, vous obtenez un message du type :

Problem 1
guzzlehttp/guzzle 6.1.1 requires php >=5.5.0 -> your PHP version (5.6.18)
overriden by "config.platform.php" version (5.3.9) does not satisfy that
requirement.

Ce qui veut dire que :

C’est assez troublant la première fois qu’on tombe sur ce message. Pour le contourner il y a plusieurs solutions :

Dans l’absolue, cette fonctionnalité est intéressante car elle permet de s’assurer que toutes les dépendances installées sont compatibles avec une version cible. Il faut cependant en avoir l’utilité et ne pas l’initialiser pour rien.

Si vous utiliser la nouvelle commande d’installation de Symfony, vous ne rencontrerez pas ce problème car la configuration platform est supprimée du fichier composer.json (pour plus de détail, voir la pull request sur Github).Par contre l’installation avec create-project récupère “juste” les sources disponibles sans les modifier. On se retrouve donc avec le fichier contenant la configuration génante.
Je ne suis pas le seul à avoir été confronté au problème, des tickets ont été ouvert sur Github: #933, #858.

Un peu de temps de perdu et une fonctionnalité de Composer découverte aujourd’hui. La prochaine fois, je comprendrai ce message directement et je saurais comment réagir 😀.

Partager cet article


Soumettre un commentaire

Vous avez décidé de laiser un commentaire. C'est fantastique !
Votre adresse e-mail ne sera pas publiée, merci d'être passé !

(*) Champs obligatoires Envoyer

Votre commentaire a été soumis à validation