Bonjour,

J'utilise PHPStorm pour mes projets et j'en suis très satisfait.
Cependant j'ai un petit soucis avec un des mes projets.

En effet j'ai plusieurs conditions qui définisse mes constantes dans mon fichiers init.php
par exemple le chemin ROOT qui est pas le même sur le remote et donc cela me génére des warnings dans l'IDE et ne permet pas d'utilisé pleinement celui-ci par exemple un ctrl+clic sur le nom d'un fichier d'un include ne fonctionne pas car le chemin ne correspond pas.

Avez vous déjà eux ce genre de soucis et comment le corriger

Merci
Couss

7 réponses


Couss
Auteur

personne ?

Couss
Auteur

Concernant le code rien de plus simple, des const dans des conditions

if(isset($_SERVER['SERVER_ADDR']) && ($_SERVER['SERVER_ADDR'] == '127.0.0.1') ) {
    define('ROOT', 'C:/wamp/www/monsite/');
    define('SITEROOT', 'http://www.monsite.loc/');
    define('DEBUG', 1);
  }
  elseif(isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME'] == 'temp.monsite.fr')) {
    define('ROOT', '/var/www/vhosts/nsxxxxxxx.ovh.net/temp.monsite/');
    define('SITEROOT', 'http://temp.monsite.fr/');
    define('DEBUG', 1);
  }
  else {
    define('ROOT', '/var/www/vhosts/nsxxxxxxx.ovh.net/monsite/');
    define('SITEROOT', 'http://www.monsite.fr/');
    define('DEBUG', 0);
  }

Pour PHPStorm ROOT vaut /var/www/vhosts/nsxxxxxxx.ovh.net/monsite/ alors que je suis en local

Je pense qu'il est un peu tard, mais au cas où, je te propose de réorganiser ton code. En fait, l'IDE va visiblement prendre ce qu'il trouve en dernier pour les define.

Un solution a ton problème pourrait être la suivante :

if(isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME'] == 'temp.monsite.fr')) {
    define('ROOT', '/var/www/vhosts/nsxxxxxxx.ovh.net/temp.monsite/');
    define('SITEROOT', 'http://temp.monsite.fr/');
    define('DEBUG', 1);
}
elseif(isset($_SERVER['SERVER_ADDR']) && ($_SERVER['SERVER_ADDR'] == '127.0.0.1') ) {
    define('ROOT', 'C:/wamp/www/monsite/');
    define('SITEROOT', 'http://www.monsite.loc/');
    define('DEBUG', 1);
}
/*
 * Dans le cas ou le serveur n'est pas reconnu, 
 * de toute façon ton ROOT ne sera pas bon 
 * puisque tu ne le défini pas dynamiquement :)
 */
else {
    http_response_code(500);
    echo '<html><head><title>Mon site - Server internal error</title></head>';
    echo '<body><center><br/><br/>';
    echo 'We are sorry, something gone wrong. Please retry later...';
    echo '</center></body>';
    echo '</html>';
    exit;
}
Couss
Auteur

je vais test ca

Alors ? ^^

Couss
Auteur

Helas non
mais quand je "bidouille" mon fichier init les constante retrouve la bonne valeur

Couss
Auteur

pardon ?