Jump to content

Surcharges des constantes du fichier defines.inc.php


SamXIV

Recommended Posts

Bonjour à vous, 

 

J'ai été amené à me questionner sur la façon dont sont gérés les fichiers de configuration de prestashop, et ma réfexion m'a mené à bien des paradoxes. J'aimerais volontiers vos avis experts. 

 

Voici mon cas : J'ai une boutique déployée en local, sur un serveur de production et de dev, le tout versionné comme il faut avec git.

 

J'ai besoin d'avoir des réglages différents du fichier defines.inc.php selon l'environnement de travail -> l'exemple le plus flagrant étant la constante _PS_MODE_DEV_ qui doit etre à true sur les environnement dev et false en production.

 

Par la nature de son contenu, le fichier defines.inc.php doit être versionné, ce qui interdit de modifier cette constante dans ce fichier là.

 

A première vue, les chosent peuvent paraitre bien faites, le code exact pour cette variable étant :

if (!defined('_PS_MODE_DEV_'))
	define('_PS_MODE_DEV_', false);

Ce qui nous laisse l'espoir de pouvoir définir cette variable en amont. Ce serait une "surcharge".

 

Très bien, alors où ? Voici comment on arrive à cette ligne : 

  • index.php inclu tout d'abord le fichier config.inc.php
  • config.inc.php inclu tout d'abord le fichier defines.inc.php

Il n'y a donc rien de prévu nativement pour pré-définir des constantes alors qu'il y a bien du code écrit pour éviter de les redéfinir.

 

Note : Il y a bien le fichier settings.inc.php qui n'est pas destiné au versionning, mais il est ajouté dans le fichier config.inc.php après le fichier defines.inc.php et donc trop tard pour pré-définir la constante _PS_MODE_DEV_.

 

Est-ce que j'ai loupé quelque chose ou est-ce que ce comportement natif est "incomplet" ?

 

La seule solution que j'ai trouvé est de modifier un fichier du "coeur" (index.php ou config.inc.php) pour inclure un autre fichier de config perso en amont.

 

Bien à vous qui avez lu ce long post.

Edited by SamXIV (see edit history)
Link to comment
Share on other sites

Hello,

 

Pour ma part je ne versionne pas les fichiers de configuration prestashop. En fait je versionne settings.inc._local_.php ou settings.inc._prod_.php par exemple mais jamais le fichier lui même. Idem pour defines.inc.php puisqu'il doit changer selon l'environnement.

ça demande juste a faire un copié collé et adapter la config une fois et voilà.

C'est ce que j'ai trouvé de plus efficace...

Edited by seb776 (see edit history)
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...