[Help] PHP et Orienté Objet

Statut
N'est pas ouverte pour d'autres réponses.

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 :

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'C:/Program Files/xampp/htdocs/test/Orienté Objet/index.php' (include_path='.;C:\Program Files\xampp\php\pear\') in Unknown on line 0

Heeeeeelp! :D
 
1er
OP
WaKaaN

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...

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [...]\lib\DataAccess.php on line 54
http://www.thierryb.net/site/Motif-Modele-Vue-Controleur-et-PHP.html

Merci :)
 

ozilrit

Elite
Non, c'est bien du 4 : le var déprécié, le constructeur nommé et la méthode classique appelée par paamayim::nekudotayim.
 
1er
OP
WaKaaN

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 ;) )
 

ozilrit

Elite
Le second tutoriel (phppatterns) est également en PHP 4. =]
 
1er
OP
WaKaaN

WaKaaN

JcQL
Arf, mais n'y a-til donc rien sur PHP5 dans cette toile ? :-]

N'aurais-tu pas un BON lien ?
 

ozilrit

Elite
Je viens de te pondre un exemple très simple, check tes PM.
 

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 ;)
 

ozilrit

Elite
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.
 
1er
OP
WaKaaN

WaKaaN

JcQL
Un grand merci !! Je regarderais ca demain à tête reposée :)

J'apprécie l'effort :)
 
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
 

ozilrit

Elite
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...
 
1er
OP
WaKaaN

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
 
1er
OP
WaKaaN

WaKaaN

JcQL
Bon... Vraiment pas très concluant...

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM :maboul: in C:\Program Files\xampp\htdocs\test\MVC\controller\controller.php on line 11
Je joins un fichier rar avec ce que j'ai essayé de faire.. ^^

ici
 

ozilrit

Elite
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. =]

je trouve ca vachement bien expliqué d'ailleur.
Merci. =]​
 

ozilrit

Elite
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.
 
1er
OP
WaKaaN

WaKaaN

JcQL
http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php

Tu as changé beaucoup trop de choses. Que voulais-tu faire ?
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!
 

ozilrit

Elite
Oya,

t'en sors-tu ? =]



La plus belle façon de me remercier sera d'enseigner à ton tour.
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut