IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Comment l'utiliser convenablement.


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut [POO] Comment l'utiliser convenablement.
    Bonjour,

    Je fais beaucoup d'objet quand je programme sauf en PHP, et j'ai donc envie de m'y mettre. Seulement, pour le moment je ne trouve pas ca très pratiquement (surtout au niveau de la durée de vie des objets) mais je m'y prend peut être mal donc je m'explique.

    Prenons le cas simple de l'organisation d'un tournois.

    Dessin pourri pour illustrer :


    c'est peut être surper mal modélisé mais c'est pas le problème c'est juste pour expliquer, ca économise des mots.



    Techniquement en php... le mieux est de faire un fichier genre

    librairie.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      class Tournois {
        var $Lieu;
        var $Nom;
        // Constructeur()
    blabla}
      }
     
      class Joueur{
        var $Nom;
        var $Prénom;
        // Constructeur()
    blabla}
      }
    et à chaque page php de mon site, je fait un include('librairie.php')

    ok ? jusqu'ici j'ai bon je pense.

    Ensuite, admettons que je créé une page qui gere les joueurs

    joueur.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $participant[0] = new joueur('Toto', 'bob')
    $participant[0] = new joueur('henri', 'zidane')
    $participant[0] = new joueur('stella', 'artois')
    $participant[0] = new joueur('némare', 'jean')
    et pareil pour les tournois...

    mais une fois que je quitte ma page joueur.php, par exemple pour aller sur tournois.php qui affiche tous les tournois et les joueurs qui y participent.

    sachant que la durée de vie des objets est la meme que celle du script en cours, il faut donc que je sérialise tous les joueurs un par un (sans savoir combien il y en a) et que je les passe en querystring ?........ et ainsi de suite pour que je conserve tous les objets que j'ai créé

    ca me parrait super pas pratique.

    est ce que je m'y prend super mal ? peut-on m'aider dans mon raisonnement ?

    merci d'avance

  2. #2
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Sert toi plutot d'une base de donnée. Et ensuite il faut que tu recrées tes objets à chaque script, en fonction du besoin bien sur.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    oui dans ce cas biensur, mais c'etait juste pour illustrer.
    c'est l'idée générale, est ce que c'est comme ca que l'on fonctionne ?

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Salut,

    oui, c'est le principe, légérement simplifié mais c'est ça...

    il ne faut regarder l'utilisation des classes PHP que pour la méthodologie obtenue, on n'est pas dans un conteneur de serveur d'application, donc la persistance des objets instanciés est limité à l'execution du script, a moins bien sûr, que tu ne joues avec la serialisation et les sessions.
    Cependant depuis php5, on a des choses nouvelles trés utiles comme la gestion des exceptions ou les librairies pré-implémentées telle que PDO (couche d'abstraction d'accés aux données) ou encore SPL (StandardPHPLibrary)

    un peu de doc sur l'objet dans PHP4 :
    http://hachesse.developpez.com/objetphp/


  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    ok merci, je suis plus eclairé, il faut vraiment se servir de la POO pour une structure et non comme conteneur de données.

  6. #6
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Par défaut
    exactement. C'est plus une méthode de programmation qu'un conteneur

  7. #7
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    Mais ça apporte enormement pour la structure, je trouve que le MVC n'a pas de meilleur utilité qu'en PHP (avis perso).
    Les objets augmentent incroyablement la lisibilité d'un des languages les plus fouillis quand il est mal ecrit.
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    Oui c'est vrai.
    Mais surtout pour des méthodes, parce que niveau variables, il faut les réalimanter à chaque script (avec sérialisation ou autre méthode). L'héritage est bien utile dans ce cas également.

    Je ne saisi pas trop l'importance de l'encapsulation dans ce cas. d'ailleurs je n'ai pas souvenance que ce concept soit utilisé.

    Je me demande si pour une appli "simple" ce n'est pas trop lourd de faire de l'objet. A partir de quel moment il convient de programmer en objet (je parle pour le PHP biensur...) ?...

  9. #9
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    Je ne saisi pas trop l'importance de l'encapsulation dans ce cas. d'ailleurs je n'ai pas souvenance que ce concept soit utilisé.
    Pour moi, l'atout majeur en PHP c'est la sécurité.
    Le contrôle de ce qui rentre et sort est l'aspect le plus important de la prog web.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Je me demande si pour une appli "simple" ce n'est pas trop lourd de faire de l'objet. 
    A partir de quel moment il convient de programmer en objet (je parle pour le PHP biensur...) ?...
    Faire de l'objet à tout va en PHP est inutile.
    Enfin pour moi, des que tu parles "d'appli" et plus de site, faut penser objet.
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  10. #10
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Par défaut
    moi c'est le côté organisation qui m'intéresse. Dès que mon script ne fait pas que de l'affichage, je fais de l'objet. C'est quand même pratique d'avoir des parties indépendantes.

  11. #11
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    un autre

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    ah en revanche on ne peut pas surcharger les fonctions ?

    Fatal error: Cannot redeclare afficher() in c:\program files\easyphp1-8\www\file\utils.php on line 268

  14. #14
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    la surcharge n'est pas possible par contre tu peux utiliser func_get_args qui permet de s'en sortir.

  15. #15
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    merci

    Bon, pour info (ca peut aider) je vous copie la méthode que j'ai utilisé pour coder.

    Tous les commentaires sont les bienvenus. Ce n'est pas forcément super propre.

    Attention, je colle le code simplifié pour info et pour ceux que ca interesse. Je ne vous oblige absolument pas à débuguer ou quoi que ce soit. C'est juste pour vous montrer comment j'ai fonctionné. Ce n'est pas forcément la meilleurs manière donc si certain ont des conseils, je suis preneur.

    J'ai décidé d'utiliser les classes et les fonctions suivantes:

    je n'ai pas encore trop travailler sur les joueurs donc, il n'y a pas grand chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    class joueur {
    	var $id; // ID unique du joueur
    	var $nom; // nom du joueur
    	var $mail; // mail du joueur
    	var $telephone; // telephone du joueur
    	var $domicile;  // dans quelle ville il habite
    	var $rang; // rang : 7 = superadmin; 5 = admin; 3 = rien pour l'instant; 1 = joueur simple; 0 = désinscrit; -1 = bannis
    	var $pass; // le mot de passe crypté md5
    	function joueur($_id)  // constructeur
    	{
    		$this->id = $_id;
    	  	// on rempli le reste des variables avec les infos de la base
    	}
    	function IsInscrit($cTournois)
    	{
    		// Renvoit si le joueur est inscrit ou non
    	}
    	function inscrire($cTournois)
    	{
    		// vérifie que le joueur n'est pas déjà inscrit
    		// vérifie que le tournois n'est pas plein
    		// inscrit le joueur à l'instance de tournois passé en paramètre		
    	}
    	function afficher() 
    	{
    		// Affiche le joueur
    	}
    	function classer($cTournois, $tPlace)
    	{
    		// Renseigne le classement du joueur pour le tournois passé en paramètre
    	}
    	function classement($cTournois)
    	{
    		// Renvoit le classement du joueur pour le tournois passée en paramètre
    	}
    	function desinscrire($cTournois)
    	{
    		// vérifie que le joueur est bien  déjà inscrit
    		// désinscrit le joueur du tournois passé en paramètre
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    class tournois {
    	var $id; // ID unique du tournois
    	var $nom; 
    	var $date; 
    	var $lieu;
    	var $buyin; // prix d'entrée
    	var $jmax; // nombre de joueurs maximum
    	var $termine; // tournois terminé : 0=non; 1=oui
    	var $template; // est ce que ce tournois fait l'objet de modèle pour la création de futurs tournois
    	var $organisateur; // instance de joueur: l'organisateur du tournois
    	function tournois($_id) // Constructeur
    	{
    	  	$this->id = $_id;
    	  	// on rempli le reste des variables avec les infos de la base
    	}
    	function terminer()
    	{
    		// flag le tournois à terminé
    	}
    	function AffConsulter()
    	{
    		// Affiche les données du tounrois, uniquement en consultation, avec les joueurs déjà inscrits
    		// permet de s'inscrire si l joueur ne l'est pas.
    		// permet de se désinscrire si le joueur est déjà inscrit.
    		// l'organisateur et les admin ont une option pour pouvoir acceder au mode "modifier"
    	}
    	function AffTermine()
    	{
    		// Mode d'affichage lorsqu'un tournois est terminé avec le classement des joueurs
    		// Affiche les données du tournois, uniquement en consultation
    		// On ne peut plus s'inscrire
    		// l'organisateur et les admin ont une option pour pouvoir acceder au mode "modifier"
    	}
    		function AffModifier()
    	{
    		// Mode d'affichage du tournois en modification.
    		// Seuls les admins et l'organisateur peuvent accéder à cet affichage.
    		// Permet d'accéder et retirer des joueurs
    	}
    	function afficher() 
    	{
    		// selon l'état du tournois, on choisi l'affichage approprié
    		if ($this->termine==0)
    			$this->AffConsulter();
    		else
    			$this->AffTermine();
    	}
    	function afficher_mode($arg) 
    	{
    		// choix personnalisé du type d'affichage (bon c'est un peu foireux, je ne savais pas comment surcharger en fait)
    		switch ($arg)
    		{	
    			case ("modifier"):
    				$this->AffModifier();
    				break;
    			case ("consulter"):
    				$this->AffConsulter();
    				break;
    			case ("termine"):
    				$this->AffTermine();
    				break;
    			default:
    				$this->afficher();
    				break;			
    		}
    	}
    	//les fonctions SET qui updatent directement la base
    	function Setnom($nom){}
    	function Setlieu($lieu){}
    	function Setdate($date){}
    	function Setbuyin($buyin){}
    	function Setjmax($jmax){}
    	function IsFull()
    	{
    		// Renvoit si le nombre de joueur inscrit a atteint le nombre de joueurs max
    	}
    	function desinscrire($cJoueur)
    	{
    		// pour ce tournois, désinscrit le joueur passé en paramètre s'il est inscrit
    	}
    	function inscrire($cJoueur)
    	{
    		// pour ce tournois, s'il n'est pas complet inscrit le joueur passé en paramètre s'il n'est pas inscrit
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function GetJoueurs($Tid)
    {
    	/* Si Tid = 0, retourne tous les joueurs */
    	/* Si Tid > 0, retourne tous les joueurs du tournois à l'id Tid*/
    	/* Si Tid < 0, retourne tous les joueurs pas inscrits au tournois à l'id Tid*/
     
    	// retourne un tableau contenant les id des joueurs.
    }
    function GetTournois($Jid)
    {
    	/* Si Jid = 0, retourne tous les tournois */
    	/* Si Jid = -1, retourne tous les tournois à venir */
    	/* Si Jid = -2, retourne tous les tournois terminés */
    	/* Si Jid > 0, retourne tous les tournois du joueur à l'id Jid*/
     
    	// retourne un tableau contenant les id des tournois
    }
    Je fonctionne comme ceci:

    j'ai plusieurs page (sans parler de home, index blabla):

    les classes et fonction du dessus son dans une page bibliotheque que je met en include au début de l'index.

    Joueur:
    liste les joueurs.
    ajoute des joueurs.
    modifie des joueurs.
    affiche les joueurs (stats classements etc...)

    Tournois:
    Dans un menu, je liste tous les tournois en deux parties (prévus et terminés) grace à la fonction GetTournois().
    lorsqu'on clique sur un tournois, il s'affiche.

    Je fonctionne en fait par id. je récupère l'id du tournois. A partir de celui-ci, je créé une nouvelle instance de la calsse tournois. A chaque nouvelle instance, je vais chercher les infos en base. donc pas besoin de sérialiser mes instances pour les passer en paramètre.

    C'est cette partie la en fait que je ne saisissais pas bien.
    A chaque fois que j'ai besoin d'un tournois, je créé une instance. Les travaux en base se font alors automatiquement via les fonctions c'est EXTREMEMENT pratique. De plus, j'imagine qu'il y a un garbage collector "naturel" puisque les objet ne vivent que le temps du script... (me trompe-je ?)


    me rest un ennui qui me turlupine.

    Vous avez vu que j'ai 3 type d'affichage pour les tournois:

    - consultation
    - modification (le meme mais avec des saisies de texte)
    - locké

    ce qui me fait trois fonctions afficher différentes. Mais le problème c'est que si je modifie qque chose (par exemple j'ajoute le champ "Prix"), il faut que je modifie les trois fonctions (qui sont déjà assez lourdes vu qu'elle affichent aussi les joueurs inscrits, les joueurs qu'on peut inscrire, leur classement ..

    En plus, je vais devoir créer la fonction Nouveau tournois qui va fortement ressembler à "midification". Ca va m'en faire une 4eme...

    je me demande s'il n'y a pas un moyen d'optimiser cela...


    Pour conclure, je n'etais pas sceptique mais je me demandais quel apport réel amenait la POO en php... et bien je suis entièrement satisfait. Elle m'a permis de structurer convenable mon code et de ne pas partir dans tous les sens.
    j'aurais eu ennormément de fonction et je me serais perdu sur les dépendances je pense.

    Donc ce n'est pas de l'objet comme on pourrait en faire en C++ ou JAVA, c'est clair. Mais il aide clairement au développement et à la structuration.

  16. #16
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Perso il y à quand même des points qui me chagrinnent.

    - Tu mélanges l'*affichage* et le *métier*, à mon sens ces deux actions qui agissent dans deux buts distincts devraient être clairement séparés.
    Après il n'est peut pas nécessaire de faire une grande classe de malade pour ces fonctions de vue, peut être qu'une classe avec des méthodes statiques fera l'affaire. Mais fais au moins en sorte que sémantiquement les différents rôles soit clairement énoncé dans de différentes classes/fonctions(proc.).

    - Autre point qui m'embete, c'est que tes constructeurs tire obligatoirement des informations depuis la BDD. Hors ceci n'est pas vrai. Tu devrais pouvoir instancier un objet qui soit simplement vide, pour pouvoir au final l'enregistrer dans la base.

    Je rajouterais aussi que tu n'exprimes pas clairement ce que tu fais. En effet si moi je veux me servir de ta classe, je n'ai pas forcèment envie de lire ton code pour savoir comment il fonctionne. Et malheur à moi si j'essaie d'instancier un joueur alors que je ne suis pas connecté a la base.... J'aurais une erreur pour quelque chose que je n'avais pas prévu, puisque ce n'était pas exprimé dans la méthode que j'appelais, en l'occurence le constructeur.

    Pour ce qui est ton problème de fonction d'affichage de tournois à part en décomposant ton problème en de multiples sous fonctions je voit mal comment optimiser le process en php4. En php5, peut être qu'une classe abstraite aurait put fait l'affaire, mais dans les deux cas tu auras à décomposer ton problème, pour mieux réutiliser chacune des petites foncitons dans les plus grosses.

    Quand à la surcharge via func_get_args perso je l'ai banni, car je trouve cela imbitable et incodable sur le long terme .

    bbye

  17. #17
    Invité
    Invité(e)
    Par défaut
    Moi ce qui me chagrine, c'est de voir qu'on utilise encore le modèle orienté objet PHP 4...

    C'est déprecier, obsolète, out of date ! nom de non !!!

    PHP 5 possède un modèle objet casiment complet, harmonieux.

    Alors à moins de travailler sur d'anciennes applications ou serveurs archaïques ne proposant que PHP 4, faut arrêter de se compliquer la vie...

    ...Et puis il faut dire que PHP 5 a fait ses preuves. Faut pas s'en priver.

  18. #18
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    Citation Envoyé par ePoX
    Perso il y à quand même des points qui me chagrinnent.

    - Tu mélanges l'*affichage* et le *métier*, à mon sens ces deux actions qui agissent dans deux buts distincts devraient être clairement séparés.
    Après il n'est peut pas nécessaire de faire une grande classe de malade pour ces fonctions de vue, peut être qu'une classe avec des méthodes statiques fera l'affaire. Mais fais au moins en sorte que sémantiquement les différents rôles soit clairement énoncé dans de différentes classes/fonctions(proc.).
    Oui je suis d'accord, je vais faire ca.

    - Autre point qui m'embete, c'est que tes constructeurs tire obligatoirement des informations depuis la BDD. Hors ceci n'est pas vrai. Tu devrais pouvoir instancier un objet qui soit simplement vide, pour pouvoir au final l'enregistrer dans la base.
    Dans un sens oui, je suis d'accord. Le pb de mon code c'est que les instances sont forcément des données existantes. Je ne peux pas en créer une vide... c'est problématique. Seulement, c'est tellement pratique d'avoir juste a instancier, un tournois ou un joueur avec l'id et d'avoir toutes ses données sous la main. Et comme on ne peut pas surcharger le constructeur... c'est un peu embetant ...

    Je rajouterais aussi que tu n'exprimes pas clairement ce que tu fais. En effet si moi je veux me servir de ta classe, je n'ai pas forcèment envie de lire ton code pour savoir comment il fonctionne. Et malheur à moi si j'essaie d'instancier un joueur alors que je ne suis pas connecté a la base.... J'aurais une erreur pour quelque chose que je n'avais pas prévu, puisque ce n'était pas exprimé dans la méthode que j'appelais, en l'occurence le constructeur.
    C'est vrai j'ai pas fait du code "réutilisable" et "partageable" ce qui est quand meme un des gros atouts de la POO. Ceci dit, ce que je fais est assez spécifique...

    Pour ce qui est ton problème de fonction d'affichage de tournois à part en décomposant ton problème en de multiples sous fonctions je voit mal comment optimiser le process en php4. En php5, peut être qu'une classe abstraite aurait put fait l'affaire, mais dans les deux cas tu auras à décomposer ton problème, pour mieux réutiliser chacune des petites foncitons dans les plus grosses.
    Je vais faire ce que tu m'as dit, je vais détacher ca de la classe, ca me semble plus propre également.

    Quand à la surcharge via func_get_args perso je l'ai banni, car je trouve cela imbitable et incodable sur le long terme .

    bbye

  19. #19
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    Citation Envoyé par Guardian_7
    Moi ce qui me chagrine, c'est de voir qu'on utilise encore le modèle orienté objet PHP 4...

    C'est déprecier, obsolète, out of date ! nom de non !!!

    PHP 5 possède un modèle objet casiment complet, harmonieux.

    Alors à moins de travailler sur d'anciennes applications ou serveurs archaïques ne proposant que PHP 4, faut arrêter de se compliquer la vie...

    ...Et puis il faut dire que PHP 5 a fait ses preuves. Faut pas s'en priver.
    Ben moi je me suis dit, "je vais faire de l'objet en php, allons voir les tutos sur developpez" et j'ai suivi. J'ai aucune idée de comment ca se présente en PHP5, je ne crois pas avoir lu qque chose sur developpez.com dessus ...

    EDIT: je vais lire ca : http://youri.developpez.com/php/php5/ et ceci qui m'a été donné sur la premiere page : http://classes.scriptsphp.org/articl...l-vers-l-objet

  20. #20
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    PHP5, c'est
    • la syntaxe de PHP4
    • l'ajout d'encore plus de fonctions
    • La rencontre avec la vraie POO
    et c'est tout (mais c'est déjà bcp).
    La plupart des scripts PHP4 fonctionneront sur PHP5. Au pire, faudra changer quelques lignes.
    L'idée pour commencer PHP5 (c'est ce que j'ai fait), c'est de continuer comme avant (en PHP4), mais avec une install de PHP5 (par exemple avec wamp).
    De cette manière, PHP5 arrive naturellement, même si on avait commencer un projet en PHP4.
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

Discussions similaires

  1. [POO] Comment utiliser la méthode isValid d'un DateField
    Par alicia1984 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 30/07/2008, 14h33
  2. [POO] Comment utiliser __autoload?
    Par paragoge dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 16h47
  3. Comment bien utiliser ce forum ?
    Par Alcatîz dans le forum Pascal
    Réponses: 0
    Dernier message: 21/04/2004, 16h37
  4. [scrapbook] comment l'utiliser ?
    Par Didier 69 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 16/04/2004, 17h28
  5. [INDY] -> IdIdentServer comment l'utiliser ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 9
    Dernier message: 06/08/2003, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo