Bonjour,

Je bosse sur php depuis pas mal de temps maintenant et je me retrouve devant la POO que ne connais que très peu..

J'ai beau suivre les tuto, j'ai l'impression d'avoir quand même rate une étape..
Le helper, je l'ai recopie en me disant que la pratique serait un bon entrainement
Mais je ne comprends pas diffusément ce qui je fais quand Ca de complexifie..

Je cale sur des trucs qui ont l'air évident comme les "this" pa exemple..

Donc je me demande.. Comment vous avez commencer pour dompter la bête?

Quels sont vos premières créations d'objets?

Par quoi me conseillez vous de commencer?

Merci

iFabe :)

5 réponses


ifabe
Auteur
Réponse acceptée

Merci :)

elscorto, grâce a ce petit bout de code, je viens de voir ce qui me perturbe tellement..
Je réfléchissais a ce que je ne trouvais pas "évident" a mes yeux dans ton code...
En fait, je viens de découvrir un truc tout bête...

En démonstration, très souvent, on voit par exemple ceci:

private $maVar1;
private $maVar2;
public function setVars($maVar1, $maVar2){
    $this->maVar1 = $maVar1;
    $this->maVar2 = $maVar2;

en fait, pour apprendre, ca parait "emmêlé" (je ne parle que de mon cas évidemment)
a cause des "redoublements" des noms utilisés..

Je viens de me tester ceci, sans aucun autre intérêt que ma compréhension je l'avoue :)

<?php
class Test{
    private $var1;
    private $var2;

    public function parle($mapremierevariable, $madeuxiemevariable =null){
        $this->var1 = 'Ma premiere : ' . $mapremierevariable;
        this->var2 = 'Ma deuxieme ' . $madeuxiemevariable;

        echo $this->var1;
    echo "<br/>";
    echo $this->var2;   
    }   
}
?>

Suivi d'un petit

<?php
require 'class.php';
$test = new Test();
echo $test->parle("Variable.", "vARIABLE");     
?>

Et la lumière fut... :)

Simplement en ne nommant pas mes variables de class de la même façon que celles passées en paramètres dans mes fonctions, j'ai réussi a vraiment scinder les choses et voir d'un venait mon problème

Je dis pas que je vais me faire des trucs de dingue d'ici demain mais je pense que je suis lancé sur une meilleure voie pour poursuivre cet apprentissage :)

Merci a vous :)

Salut,
je me suis retrouvé devant le même pb que toi. Effectivement la pratique est le meilleur moyen d'y arriver.
Pour ma part, je me fixe des objectifs. Par exemple tu te fais un livre d'or. En plus tu as un tuto vidéo ici très bien. Après tu le complexifies étape par étape en le modifiant en objet.

Bref, je te dis pas de suivre à la lettre ce que je viens de dire mais commence toujours par un truc assez basic et simple et arrange le au fur et à mesure.

Bref c'est comme ça que je fais :)
Vala
A+
Stef

salut !
premier post pour tenter d'aider quelqu'un sur ce site :) j'éspère que je vais réussir

bon moi ce qu'il me faut pour y arriver c'est un declic, je n'ai pas compris comment fonctionnait CakePHP jusqu'à ce que je regarde le tuto pour créer un MVC... cette méthode ne s'applique certainement pas a tous le monde mais bon sait on jamais ^^

ton problème par contre est la compréhension de objets, en particulier ce que permet $this, en fait $this est propre à chaque objet que tu crée, a chaque fois que tu fais un $this, ca voudra dire que pour l'objet courant (quand tu fera un $obj = new obj; ) tu feras appel à la propriété (variable) ou a la méthode (fonction).

essaye de commencer par créer un site "normal" (une page pour une chose avec php et html en même temps) mais crée des fonction pour chaque chose que tu veux faire : pour créer un espace membre par exemple, tu crée des fonctions qui vérifient les attributs du membres

une dernière chose : si tu n'utilise pas PDO (le nouveau pour gérer les bases de données avec php), je te conseille vivement de t'y mettre étant donné que c'est un système orienté objet, ca pourra peut être t'aider (on n'utilise pas $this avec pdo par contre)

en esperant etre assez constructif

Flohw

Salut,

oui la poo, n'est pas si simple a assimilé, surtout dans le web, de par mes études, je connais et sait faire de la poo, mais je dois avouer qu'en php j'ai eu du mal. Puis j'ai commencé à faire 2,3 trucs, système d'articles, pagination, helper, calendrier avec gestion d'évènement et c'est pas fini, comme le dit Tef, tu te fixes des objectifs et t'essaie que ton code marche sur n'importe quel projet et tu comprendras mieux l'intérêt de la poo.

Pour le coup du this, dis toi que c'est une variable qui désigne l'objet sur lequel tu veux travailler.

Quand tu as

<?php
$obj1 = new Objet();
$obj2 = new Objet();
$obj1->setAttribut(5);
// ta classe Objet
class Obejet{
    private attr = '';
    public function setAttribut($attr){
        $this->attr = $attr;
    }
}
?>

Si tu ne mettais pas le $this, la méthode setAttribut s'appliquerait à toutes les instances de ta classe, or le $this permet de dire, dans le cas de cette méthode, c'est à l'attribut attr de l'instance obj1 que je souhaite assigner 5 et pas aux autres.

Voilà je ne sais pas si je suis très clair, mais c'est comme ça que je le comprends, sinon j'ai commencer par un système de news, puis j'ai rajouter petit à petit, les commentaires associées, gestion de droits etc...

Bon courage à toi dans ton apprentissage.

Salut,

Ravi d'avoir pu t'aider à comprendre et amuse toi bien dans ton apprentissage.