Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2011, 18h45   #1
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
Par défaut Modifier une variable POO

bonsoir en faite c'est une question sûrement très bête mais dont je n'ai pas la réponse.

j'ai une class Config dans configuration.php

Code :
1
2
3
4
 
class Config {
	var $test= 0;
}
comment je peux faire pour modifier la variable $test dans mon fichier ?

exemple lui attribuer la valeur 5;

Merci
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 18h55   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 21h07   #3
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
ceci changera la valeur ponctuellement, moi j'aimerai la changer par défaut ?
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 23h38   #4
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonsoir,

une explication plus claire ne serait pas de refus
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 00h31   #5
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
plus clair... on va essayer...

je possède un fichier qui se nomme configuration.php
à l'intérieur il y a une class :
Code :
1
2
3
4
 
class Config {
	var $test= 0;
}
imaginons que je veuille changer la valeur par défaut qui est de 0 par 5.

je veux écrire dans le fichier pour modifier sa valeur et non lui affecter une autre valeur par une variable qui marcherait juste au moment voulu.
Je sais que ceci existe car c'est utilisé dans certains cms.
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 09h16   #6
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 706
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 706
Points : 3 274
Points : 3 274
Salut

Un truc me turlupine, c'est : var $test= 0;
Ca c'est du Php4, donc obsolète depuis des lustres.
C'est comme ceci depuis Php5 :
Code :
1
2
3
4
 
class Config {
	public $test= 0; // Ou protected ou private
}
Citation:
Je sais que ceci existe car c'est utilisé dans certains cms.
Peut être, mais déjà ça demande vraiment d'en être certain, puis le besoin est quand même pas banal.

N'empêche que si au départ on conçoit une classe, un code, puis au final on se rencontre que pour X raison un code n'est pas celui attendu, c'est qu'il y a un problème de conception (du code) non ?

Je ne suis pas un aficionados de la POO, mais pour modifier un code d'un fichier, il me semble qu'il n'y a pas d'autres moyens que de récupérer son contenu, rechercher la ligne (le code) en question est la modifier.
Puis après déclarer la classe si au bout le but est qu'elle soit interprétée.


Réflexion comme ça.
Si selon un contexte la valeur 0 sera valide et que dans un autre contexte ça doit être 5, alors c'est le contexte qui conditionne cette valeur, non ?
Donc cette valeur viendrait plutôt du contexte et pas de la classe, non?

Quelque par il faudrait au moins 2 classe Config différentes.
L'héritage peut offrir ça par exemple.
Créer une classe Mère Config où on déclarerait uniquement $test, sans lui affecter de valeur.
Puis créer 2 autres classes Filles dérivées de Config et cette fois en affectant les valeurs adéquats selon le contexte.



Mais n'y a t-il pas moyen de dire de quoi il s'agit concrètement, car $test c'est toujours aussi vague.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 12h06   #7
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
Joomla 1.5 utilise une class de configuration au de lieu d'utiliser une table de configuration dans la base de données.

donc des valeurs qui changent me choquent pas,

exemple dans le cas ou un mot de passe change ou une base de données.

ensuite pour mon exemple peut importe je l'ai inventé c'est juste pour dire que je veux changer la valeur par défaut.

Et sinon tout à fait d'accord pour le php4.

je vais continuer à chercher...

merci à vous.
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 12h46   #8
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 706
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 706
Points : 3 274
Points : 3 274
Citation:
Joomla 1.5 utilise une class de configuration au de lieu d'utiliser une table de configuration dans la base de données.
J'utilise aussi une classe Config, ce n'est pas pour autant qu'il faille modifier le code de cette classe.
Disons que ça ne coule pas de source.


A coté de ça, ce genre de Soft largement usine à gaz, prévoient souvent un fichier "install.php", pour l'installation justement, et s'occupe à générer du code.
Il n'est donc pas rare que du code Php génère du code Php.
Une fois l'installation terminé, il est souvent aussi demandé de supprimer ce fichier.
Les fichiers créés eux restent par contre, et surtout pas les supprimer.

Et bien ici on peu imaginer de créer cette classe Config avec les valeurs selon l'environnement où c'est installé.

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (selon_contexte) {
     $attribut_test =  0;
}
else {
     $attribut_test =  5;
}
 
$data = '<?php'.PHP_EOL;
$data .= '
class Config {
	public $test = '.$attribut_test.';
}
'.PHP_EOL;
$data .= '?>'.PHP_EOL;
file_put_contents ('.../chemin/de/la/config.php' , $data);
?>
N'est ce pas ce genre de truc que tu veux faire ?

On peu aussi prévoir à ce que ça se modifie, du moins, on peu re-créer/écraser le fichier si le contexte change.

Mais dans tous les cas, je ne vois pas d'autres solutions que d'écrire le fichier.


N'empêche que tu ne dis toujours pas ce qui se cache derrière ce $test.
Ca doit être du top secret défense.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h32.


 
 
 
 
Partenaires

Hébergement Web