JeuWeb - Crée ton jeu par navigateur
POO, gestion et utilisation - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : POO, gestion et utilisation (/showthread.php?tid=2859)

Pages : 1 2 3 4 5 6 7 8 9 10 11


RE: POO, gestion et utilisation - christouphe - 29-11-2010

j'ai tellement l'habitude de m'appuyer sur une BDD que c'est naturel pour moi les paramètres, et bon même sans ça, c'est tellement plus facile de passer en paramètre, même avec un &$toto pour m'éviter des variables globales que c'est assez dur d'expliquer clairement...désolé Dexine. Wink
* christouphe sort en essayant de trouver une solution :p


RE: POO, gestion et utilisation - niahoo - 29-11-2010

(29-11-2010, 12:43 PM)Kihmé a écrit : Excusez moi, j'aimerai bien revenir sur le Array, ArrayObject.

Quand j'avais utiliser le ArrayObject c'est parce que j'avais l'impression que c'était l'interface qui était la plus proche de ce que pouvait faire les Vectors (collection) de Java. Visiblement à vous lire ce n'était pas utile. Donc vous nous dite qu'il suffit de stocker mes objets dans un simple tableau pour simuler une collection d'objet, j'ai bien compris?

Oui tout à fait. un tableau php peut contenir ce que tu veux.

Y compris lui-même, ce qui est très pratique pour s'amuser à faire du memory leak dans les vieilles versions de php 5 !


ça c'est un code sur un tableau tout à fait valide:


<?php
$t = array();

$t[] = 123;
$t[] = 'salut';
$t[] = array(
array(
array(123,
$t[0],
'yop'),
'hello',
new ArrayObject(),
new PDO('........')
),
'bonjour',
new MaClasse($salut, $foo),
array(
'rirefr' => 'haha',
'rireen_gb' => 'raufleumaho',
'rire_all' => new Rire(Rire::ALL_LANG)
)
);
$t['recursif'] = $t;



RE: POO, gestion et utilisation - Dexyne - 29-11-2010

Le truc c'est que j'ai rarement vu des variables mis dans les parenthèses du __construct(), donc voilà.

Mais ça veut dire que si j'ai $this->nom = toto je ne pourrais pas le modifier ? Que ce soit via les formulaires puis traitement php, via sql puis modification BDD, etc. ?
Si je ne met rien qu'est-ce que ça fera ? Si je ne ne met pas entre parenthèses et que je met $this->nom est-ce que là ça revient à mettre entre parenthèses ?


RE: POO, gestion et utilisation - christouphe - 29-11-2010

Mais si tu pourras le modifier avec des méthode appellées "setters"


public function setMonNom($nouveauNom) {
$this -> monNom = $nouveauNom;
}

Va lire les tutoriaux sur la POO, ça va te clarifier l'esprit.

Le problème c'est qu'entre ton formulaire et ton objet il y pas mal de couches...

On peut faire simple


<?php
class maClasse {
private $monNom;
public function __construct($nomInitial='toto') {
$this -> monNom = $nomInitial;
}

public function getMonNom() {
return $this -> monNom;
}

public function setMonNom($nouveauNom) {
$this -> monNom = $nouveauNom;
}

public function __toString() {
$chaine = 'Mon nom est: '.$this -> monNom;
return $chaine;
}
}//fin de maclasse

//Utilisation
$oMaClasse = new maClasse(); //par defaut une classe avec monNOm == toto

echo 'AVANT: '.$oMaClasse;

if (!empty($_POST)) {
$oMaClasse -> setMonNom($_POST['nouveauNom']);
}
echo ', APRES: '.$oMaClasse;
?>
<form method="post">
<input type="text" name="nouveauNom">
<input type="submit" value="envoyer pour test">
</form>

Fait à la va-vite à tester Wink


RE: POO, gestion et utilisation - Dexyne - 29-11-2010

Ouais je vais allez lire ^^.


RE: POO, gestion et utilisation - christouphe - 29-11-2010

j'ai édité avec un exemple Wink


RE: POO, gestion et utilisation - Dexyne - 29-11-2010

Je viens d'essayer ton exemple, mais si je le fait comme suit, ça reviens au même donc je vois pas trop la différence (j'irais lire ce soir des trucs de POO pour avoir le truc mais bon ^^).



<?php
class maClasse {
private $monNom;
public function __construct() {
$this -> monNom;
}

public function getMonNom() {
return $this -> monNom;
}

public function setMonNom($nouveauNom) {
$this -> monNom = $nouveauNom;
}

public function __toString() {
$chaine = 'Mon nom est: '.$this -> monNom;
return $chaine;
}
}//fin de maclasse

//Utilisation
$oMaClasse = new maClasse(); //par defaut une classe avec monNOm == toto

echo $oMaClasse . '<br />';

if (!empty($_POST)) {
$oMaClasse -> setMonNom($_POST['nouveauNom']);
}
echo $oMaClasse . '<br />';
?>
<form method="post">
<input type="text" name="nouveauNom">
<input type="submit" value="envoyer pour test">
</form>


Le seul truc c'est qu'on à pas de valeur par défaut après.

Si je fais comme suit, ça marche aussi,



<?php
class maClasse {
private $monNom;
public function __construct() {
$this -> monNom = 'toto';
}

public function getMonNom() {
return $this -> monNom;
}

public function setMonNom($nouveauNom) {
$this -> monNom = $nouveauNom;
}

public function __toString() {
$chaine = 'Mon nom est: '.$this -> monNom;
return $chaine;
}
}//fin de maclasse

//Utilisation
$oMaClasse = new maClasse(); //par defaut une classe avec monNOm == toto

echo $oMaClasse . '<br />';

if (!empty($_POST)) {
$oMaClasse -> setMonNom($_POST['nouveauNom']);
}
echo $oMaClasse . '<br />';
?>
<form method="post">
<input type="text" name="nouveauNom">
<input type="submit" value="envoyer pour test">
</form>


(y'a une balise spoiler sur le fofo ?)


RE: POO, gestion et utilisation - NicoMSEvent - 29-11-2010




RE: POO, gestion et utilisation - christouphe - 29-11-2010


public function __construct() {
$this -> monNom;
}

tu es conscient que ça ne veut rien dire ?? que ce soit en OO ou en procédural...


RE: POO, gestion et utilisation - Dexyne - 29-11-2010

Oui ici ça veut rien dire (en procédural j'utilise pas vraiment __construct() ) et je renvoi une valeur, ici c'est pas le cas mais voilà ça marche quand même XD.

Pour le spoiler si la balise avait un nom spécifique j'aurais pu tout essayer XD