Page 1 sur 1

Méthode d'organisation des constantes d'une application

Posté : 14 avr. 2010, 08:31
par akrogames
Bonjour à tous,

Je suis face à une problématique récurrente lors du développement d'une application. En effet je code sous Windows (C'est MAL mais j'ai pas le choix) et le serveur c'est un linux. J'ai donc pour mon application qui tourne avec du Zend Framework un fichier de constante comme-ceci :

Code : Tout sélectionner

<?php // répertoire pour les caches define('TEMP_DIR', 'C:/SourcesLog/temp'); //define('TEMP_DIR', '/var/cache/temp');
Mon application est sous SVN aussi je fait simplement un update sur le serveur de Dev. Mais a chaque fois je dois changer les constantes sur le serveur cela me fait perdre mon temps et comme j'en oublie à chaque fois... Aussi ma question est plutôt une question d'organisation. Comment feriez-vous pour empêcher de faire cette opération mise à part travailler sous linux en local etc...
Je suis persuadé que cette question pourra être utile à pas mal de monde.

Merci d'avance

Re: Méthode d'organisation des constantes d'une application

Posté : 14 avr. 2010, 09:01
par BaLiSTiK
Pour l'application que je développe, j'utilise un PC (celui du travail mais chut ^^) sous Windows, mais chez moi, je suis sur Linux, mais je n'ai pas de soucis avec les constantes.

Définie une constante qui sera le chemin du serveur, et normalement ça ne devrais plus poser de soucis. J'ai fais comme ceci :
define("INC", $_SERVER['DOCUMENT_ROOT']);
define("DS", '/'); //séparateur de dossier

/** Definition des repertoires **/	
define("TMP", INC . DS . 'app' . DS . 'tmp'); //dossier temportaire
define("CLASSES", INC . DS . 'app' . DS . 'classes/'); //dossier des classes
define("LIBRARY", INC . DS . 'app' . DS . 'libraries/'); //dossier des librairies externes
define("VIEWS", INC . DS . 'app' . DS . 'views/'); //dossier des vues
define("DIR_IMAGES", INC . DS . 'app' . DS . 'webroot/images'); //dossier contenant les images

//etc...
En espérant que ça résout ton soucis ^^.

Re: Méthode d'organisation des constantes d'une application

Posté : 14 avr. 2010, 14:08
par zeus
Il faudrait que tu trouves un test qui permette de définir automatiquement cette constante.
Par exemple, avec $_SERVER['HOSTNAME'], je pense que tu pourras différencier ton poste de dev de ton serveur

Re: Méthode d'organisation des constantes d'une application

Posté : 14 avr. 2010, 17:55
par telnes
hello

tu subversionne tout sauf le fichier avec les define() que tu fait spécifique pour win et linux et que tu inclue dans tes/ta page(s)

++

Re: Méthode d'organisation des constantes d'une application

Posté : 19 avr. 2010, 15:26
par patbator
Hello,

En PHP existe depuis longtemps la constante prédéfinie DIRECTORY_SEPARATOR http://fr.php.net/manual/en/reserved.constants.php qui sert justement à ça.

Re: Méthode d'organisation des constantes d'une application

Posté : 19 avr. 2010, 15:51
par zeus
Qui sert à déterminer la plateforme ? ;)

Bon, taquinerie passée, cette directive pourrait être utilisé pour savoir si on se trouve sous Win32 ou Unix, mais pas plus.

Re: Méthode d'organisation des constantes d'une application

Posté : 19 avr. 2010, 16:31
par Berzemus
Et soit dit en passant, windows à toujours accepté le slash avant comme séparateur...

Si je me souviens bien, c'est IBM qui avait demandé à M$ pour son système dos d'utiliser le slash inversé, pour être compatible (graphiquement) avec une ancienne vieille version de PC DOS (et M$ à soi-disant toujours supporté les deux, n'affichant que le slash inversé). Y'a aussi quelque chose sur les arguments aux applications qui seraient impactées (puisque sous pc dos le slash avant permettait de définir les arguments, mais windows acceptant les deux versions...) , mais franchement, qui s'en inquiète..