[Help] PHP et Orienté Objet

Discussion dans 'Web, design' créé par WaKaaN, 17 Avril 2008.

Statut de la discussion:
Fermée.
  1. Offline
    WaKaaN JcQL
    PHP:
    <?php 
      
    class myDate 
        var 
    $day
        var 
    $month
        var 
    $year
        function 
    mydate($day$mounth$year) { 
          
    $this->day $day
          
    $this->month $month
          
    $this->year $year
        } 
        function 
    printTodayDate() { 
          echo 
    date("j/m/Y"); 
        } 
      } 

      
    myDate::printTodayDate(); 
    ?>
    Voici mon code (basique et recopié d'un tuto) mais il ne marche absolument pas...

    Voici mon code erreur :


    Heeeeeelp! :D
    WaKaaN, 17 Avril 2008
    #1
  2. Offline
    ozilrit Touriste
    C'est du PHP4.
    ozilrit, 17 Avril 2008
    #2
  3. Offline
    WaKaaN JcQL
    Nan c'était bien du php5...

    Je viens de chipoter un peu partout et maintenant tout est en ordre... (n'ai pas compris ce que j'ai fait... :/ )

    Enfin thx quand meme, mais n'espère pas t'en sortir sans je revienne te harceler de questions :D

    Alors : J'ai trouvé un tit tuto sympa qui explique "basiquement", le modèle MVC... J'ai lu, j'ai compris, j'applique son code qu'il met en pièce jointe, mais ne marche pas...

    http://www.thierryb.net/site/Motif-Modele-Vue-Controleur-et-PHP.html

    Merci :)
    WaKaaN, 17 Avril 2008
    #3
  4. Offline
    ozilrit Touriste
    Non, c'est bien du 4 : le var déprécié, le constructeur nommé et la méthode classique appelée par paamayim::nekudotayim.
    ozilrit, 17 Avril 2008
    #4
  5. Offline
    WaKaaN JcQL
    Je reviens ce soir, mais as-tu lu le liens que je tai donné? Est-ce du php4 ou 5 ?

    Aurais-tu un bon lien expliquant le "MVC pour les nuls" ? :p Avec exemple de code, etc.

    Thx ("thx", que dis-je à un Môsieur du php? Ne devrais-je pas plutot dire : Mes respects monseigneur :p ;) )
    WaKaaN, 17 Avril 2008
    #5
  6. Offline
    ozilrit Touriste
    Le second tutoriel (phppatterns) est également en PHP 4. =]
    ozilrit, 17 Avril 2008
    #6
  7. Offline
    WaKaaN JcQL
    Arf, mais n'y a-til donc rien sur PHP5 dans cette toile ? :-]

    N'aurais-tu pas un BON lien ?
    WaKaaN, 17 Avril 2008
    #7
  8. Offline
    ozilrit Touriste
    Je viens de te pondre un exemple très simple, check tes PM.
    ozilrit, 17 Avril 2008
    #8
  9. Offline
    Tifox ou pas
    Ozirlit, tu pourrais peut-être le mettre ici. Ca permettrait de rappeler au gens que le php, c'est pas juste des fonctions et des echos, qu'il y a aussi tout la "puissance" de l'orienté objet. Et en plus je suis sur que ton code sera propre et complet ;)
    Tifox, 17 Avril 2008
    #9
  10. Offline
    ozilrit Touriste
    Le code est très très simple, rien d'exceptionnel : ni interface, ni abstraction, ni héritage.

    Je posterai sans-doute une version plus complète/complexe dés que Wakaan aura apprivoisé le code actuel.
    ozilrit, 17 Avril 2008
    #10
  11. Offline
    WaKaaN JcQL
    Un grand merci !! Je regarderais ca demain à tête reposée :)

    J'apprécie l'effort :)
    WaKaaN, 17 Avril 2008
    #11
  12. Offline
    n3tfusiOn Elite
    C'est si mal que ça de rester au php4 bien gentiment ?
    J'avoue que j'ai pas suivi l'évolution vers le 5 o_O

    Un résumé en 3 4 phrases serait le bienvenue :p
    n3tfusiOn, 17 Avril 2008
    #12
  13. Offline
    ozilrit Touriste
    C'est très mal. =]
    • PHP4 sera abandonné le 08/08/08.
    • PHP4 est basé sur le Zend Engine 1, un réceptacle énorme de failles.
    • PHP5 et le ZE2 apportent un beau lot de nouveautés et d'extensions.

    Mais comme toujours, si une application tourne très bien sur PHP4, pourquoi changer...
    ozilrit, 17 Avril 2008
    #13
  14. Offline
    WaKaaN JcQL
    Vala, j'ai lu et j'ai assez bien compris (je trouve ca vachement bien expliqué d'ailleur).

    Mais j'ai tout de même une question :

    Pourquoi initialiser une var dans le constructeur __construct ($model = 'Hello') alors qu'on l'appelle : controller('helllo'); ?
    Serait-ce une forme de valeur par défaut en cas d'appel de méthode sans paramètres ?

    Ensuite,

    Comment structure-t-on une application (car c'est comme qu'on appelle un site je crois) ?
    Par exemple, une app qui requiert un login, d'autres formulaires, des css, du texte explicatif, ... (Que ça soit à tous niveaux: hiérarchie des fichiers, quelle couche appelle quoi, ... ? )
    Auto-réponse : ici
    WaKaaN, 18 Avril 2008
    #14
  15. Offline
    WaKaaN JcQL
    Bon... Vraiment pas très concluant...

    Je joins un fichier rar avec ce que j'ai essayé de faire.. :p

    ici
    WaKaaN, 18 Avril 2008
    #15
  16. Offline
    ozilrit Touriste
    Les méthodes commençant par __ sont dites magiques.

    La méthode __construct te permet d'effectuer un traitement, ou non, lors de l'instanciation de l'objet.

    Ainsi, l'appel de new Controller () équivaut à l'appel de Controller::__construct().


    Pour ta seconde question, en très gros : tu sépares le publique du privé. Le publique équivaut à tes fichiers JS, tes feuilles de styles, tes fichiers images et un fichier PHP nommé index.php : le contrôleur principal.

    Ce dernier va ensuite, selon la requête, inclure les fichiers PHP privés nécessaires au traitement.

    Tu auras donc une arch. comme :
    - ton_application/
    - webroot/ (le publique)
    - js/
    - i/
    - css/
    - index.php (le contrôleur principal)
    - phproot/ (le privé)
    - util/ tes classes utiles
    - model/
    - Model.php
    - ModelInterface.php
    - ModelException.php
    - controller/
    - Controller.php
    - ControllerInterface.php
    - ControllerException.php
    - view/
    - View.php
    - ViewInterface.php
    - ViewException.php
    - database/
    - Database.php
    - DatabaseInterface.php
    - DatabaseException.php
    - DatabaseMySQL.php
    - DatabaseOracle.php
    - cache/
    - Cache.php
    - CacheInterface.php
    - CacheException.php
    - CacheApc.php
    - CacheMemcached.php
    - model/
    - HelloModel.php
    - view/
    - HelloView.php
    - controller/
    - HelloController.php

    La racine de ton serveur web doit donc être ton_application/webroot/.

    Je reviendrai sur tout ce qui est Model, ModelInterface, ModelException, etc lorsque tu t'intéresseras à l'abstraction, aux interfaces, à l'héritage, à l'implémentation et aux exceptions. =]

    Merci. =]
    ozilrit, 18 Avril 2008
    #16
  17. Offline
    ozilrit Touriste
    Paamayim::Nekudotayim. =]

    Tu dois utiliser :: lorsque la méthode est statique, sinon ->.


    Tu as changé beaucoup trop de choses. Que voulais-tu faire ?

    Très franchement, tu devrais continuer à apprendre quelque peu avant de tenter tes propres apps. Tu risques de passer à côté de notions très utiles.
    ozilrit, 18 Avril 2008
    #17
  18. Offline
    ozilrit Touriste
    ozilrit, 19 Avril 2008
    #18
  19. Offline
    WaKaaN JcQL
    Je voulais simplement afficher un formulaire... :roll:-(desespéré:p )

    Nan sérieusement je vais tenter d'assimilier tout ce que tu m'as dit....

    En commencant par tous les liens que tu m'as filé...

    Mais honnêtement, (et je n'ai pas peur de me répéter...) UN GRAND MERCI!
    Je me rends compte de tout le tps que tu me consacres :p So, big thx!
    WaKaaN, 19 Avril 2008
    #19
  20. Offline
    ozilrit Touriste
    Oya,

    t'en sors-tu ? =]



    La plus belle façon de me remercier sera d'enseigner à ton tour.
    ozilrit, 21 Avril 2008
    #20
Statut de la discussion:
Fermée.