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] Classes PHP : utilité et différence par rapport aux fonction


Sujet :

Langage PHP

  1. #1
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut [POO] Classes PHP : utilité et différence par rapport aux fonction
    Bonjour à tous.

    Je me penche depuis peu sur la création de classes en PHP avec ce tuto :
    http://hachesse.developpez.com/objetphp/
    Mais je me pose la question de l'utilité d'implémenter des classes par rapport aux fonctions.

    Auriez vous des exemples ou il serait réellement plus avantageur de passer par les classes svp ?
    Je suis persuadé que ca doit être utile, j'aimerai juste comprendre quand et pourquoi

    Merci d'avance.
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  2. #2
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    Pour faire très généraliste et simple disons que ça a le même avantage que les fonctions, mais que c'est vraiment très très util qd plusieurs fonctions agissent sur les mêmes données, là il devient intéressant de les gérées via des classes, plutot que d'appeler n fonctions avec tjrs les mêmes paramètres, et de devoir mettre en global des variables que ces fonctions doivent s'échanger...

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    La POO est une manière de programmer différente de la programmation dite procédurale.
    C'est à toi de voir dans quelle méthode tu te retrouves le mieux.

    Généralement, la POO (quand on la compare avec la prog procédurale) est associée à la démarche qualité.

    Une différence est par exemple dans les noms de fonctions.
    En procédural, tu es obligé de préfixer tes noms de fonctions pour savoir à quoi elles s'appliquent.
    En POO, les méthodes appartiennent à une classe spécifique donc il est inutile de préfixer leur nom par le thème (str, preg_, etc.).

    Imaginons un cas concret et simple : les chaînes de caractères.
    En procédural, tu as une panoplie impressionante de fonctions commençant par "str".
    En POO, tu aurais une classe "String" contenant des méthodes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     // Instanciation
    $first_name = new String;
     
     // Accès aux méthodes
    $first_name->to_lower();
    $first_name->escape();

    Il s'agit surtout d'organiser le code : tu n'as plus 50 fonctions dont seul le préfixe indique à quoi elle s'applique. Si tu as plein de fonctions en procédural, tu te retrouves souvent avec plusieurs fichiers de fonctions génériques regroupant tes fonctions selon leur thème.
    En POO, tu as des classes contenant des méthodes. Pour peu que tu mettes une classe par fichier, tu t'y retrouves largement plus facilement.

  4. #4
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Merci à vous deux, je comprend un peu mieux l'utilité et les circonstances qui font choisir l'un ou l'autre

    Petite question subsidiaire : est ce que les classes peuvent s'appliquer à tout ?
    un petit exemple bête, ma fonction de connexion à ma DB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function connexion_DB($name_DB) {
    	$host = "localhost";  
    	$user = "root";
    	$bdd = $name_DB;
    	$passwd  = "";
    	mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
    	mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
    }
    il pourrait être interessant pour moi de créer une classe regroupant l'ensemble de mes fonctions de DB, mais comment instancier ma classe ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class DB {
    	function DB($host="localhost", $user="root", $passwd="", $bdd="toto") {
    		mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
    		mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
    	}
    	function query($chaine_SQL) {
    		// mon query
    	}
    	//....
    }
     
    $ma_DB = new DB();
    puis des appels du genre $ma_DB->query($mavar), ... suffiraient ils ?
    ce qui me gène, c'est que $ma_DB me semble se référer au vide spatial (bon, peut être mon exemple n'est pas le meilleur, peut être que juste un DB::connect et un db::query seraient plus adaptés dans ce cas...)
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    Au contraire je penses que c'est un bon exemple.

    tu ne peux pas utiliser db::query car il faut créé ton objet pour pouvoir utiliser cette méthode, qui a besoin des paramètres de conexion ( qui sont passé lors de la création d'une occurence de ton objet ) , or justement le symbole :: dit typiquement "utilise cette méthode de mon objet, mais sans créer d'occurence.."

    Et dans ton cas $ma_DB correspond à qqch : ton objet base de donnée connectée

    C'est sur faut un peu d'adaptation à la prog objet mais je trouves que php est une très bonne initiation à l'objet, il l'aborde d'une façon très simple et très agréable si on le compare au C++ ou JAVA ^^

  6. #6
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    donc dans mon exemple, $ma_db = new DB() me créera bien un objet base de données, et je ne pourrai pas exécuter de requête sans passer par cet objet ? Et donc DB::connexion() me crérait une connexion qui ne serait pas utilisable, car pas instanciée ?

    désolé, j'ai un poil de mal, les joies de la découverte

    bon, ok, sans doute un poil boulet sur ce coup là :p
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  7. #7
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    Tu n'as pas de méthode connexion dans ton objet, donc forcément DB::connexion ne marcherait pas.
    Si tu voulais faire allusion à DB::query, effectivement tu ne pourras pas, l'objet serait incapable de savoir quelle conexion utilisée, puisque cette connexion est définit lors de l'instantiation.

    Concretement c'est relativement rare d'avoir à passer par ::

    Pourquoi ca te pose soucis de passer par $ma_db->query ? ^^

    Ya pas de honte à apprendre, on est tous passé par là et en info on est tous des débutants

  8. #8
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Effectivement, quand je parlait de DB::connexion, je sous entendait renommer mon constructeur en connexion.

    Dans ce cas là, est ce que ma connexion sera active quoi que je fasse après, ou bien du fait que je n'ai pas instancié d'objet, est ce que ca me renverra en erreur ?

    Ca ne me pose pas de soucis de passer par un ma_db->connexion, c'est juste pour bien comprendre les différences et les limites
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  9. #9
    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
    Points : 691
    Points
    691
    Par défaut
    salut

    DB::connexion correspond a un appel statique ( il ya pas besoin d'instancier la classe)
    mais dans ton cas pour utiliser query tu a besoin de l'instancier
    mais il serait peut etre interressant de l'instancier une seule fois au debutr de ton programme (au lieu de la faire dans chaque methode).
    si tu veut faire cela il faut que tu implemante le pattern Singleton que tui peut trouver sur la doc de php(php.net)

  10. #10
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Merci à vous tous pour ces réponses et pour avoir supporté ma bouletise aïgue
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  11. #11
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut exemple
    Salut !

    Au debut si tu commence en POO, je ne te conseille pas d'utiliser DB::connect etc.. parce que ca provient du framework pear et que pour comprendre ce qui se passe mieux faut implementer tes classes toi meme.

    je vais peut-être faire un peu lourd un copiant toute la classe de l'objet connexion que j'ai fait pour mes propre besoins si cela t'interresse comme un modele (dont la qualité est a discuté mais ca marche), les constantes sont definie dans un fichier inclus au fichier d'appel. ca donne ca :
    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    <?php
    //ce fichier contient la classe connectDB qui genere des connections a la base
     
    /**
    Author : Frédéric KESTENER
    Date : 25 mars 2006
    Note : les objets de la classe connexion etablissent testent et ferment les connections vers la DB avec les parametres par defaut (constantes)
    **/
     
    class connexion {
    		//declaration de propriétés
    			private $host;
    			private $login;
    			private $pwd;
    			private $db;
    			private $connexion;
     
     //constructeur de la classe
    		function connexion($db)  //pour les puristes equivalent a __construct($db)
    		{
    			$newcon->host = $this->setHost(HOST);
    			$newcon->login = $this->setLogin(LOGIN);
    			$newcon->pwd = $this->setPwd(PWD);
    			$newcon->db = $this->setDB($db);
    			$newcon->connexion =           $this->setConnexion($this->connectToServer());
    			$this->connectToDB();
    			return $newcon;
    		}
     
    		//methodes et fonctions generale de connexion
     
    				function connectToServer()
    				{
    					//connection a la base de données retourne un objet connexion vers database
    					//$connexion=mysql_connect (HOST,LOGIN,PASSWORD)or exit(mysql_error());
    					$connexion=mysql_connect($this->getHost(),$this->getLogin(),$this->getPwd())or exit(mysql_error());
    					if ($connexion){
    						echo ("connexion vers le SGBD Etablie !!!!!"); /*DEBUG ONLY*/
    						return $connexion;
    					}else {
    						echo ("un probleme a ete rencontre, la connexion vers le SGBD n\'a pas pu être etablie"); /*DEBUG ONLY*/
    						return false;
    					}
    				}
     
    				function connectToDB(){
    					//selection de la base de données
    					mysql_select_db ($this->getDB(), $this->getConnexion())or exit(mysql_error());
    					echo " connexion a la base ".$this->getDB()." ok";
    				}
     
    				function close()
    				{
    				//ferme la connexion a la base de données return void
    					mysql_close($this->connection);
     
    				}
     
    				function testConnectDB()
    				{
    				//test la connexion a la base return bool + constante si connect DB est Ok
     
    				}
     
    		//methode d'acces GETTER and SETTER
     
    		function getHost(){
    			return $this->host;
    		}
     
    		function getLogin(){
    			return $this->login;
    		}
     
    		function getPwd(){
    			return $this->pwd;
    		}
     
    		function getDB(){
    			return $this->db;
    		}
     
    		function getConnexion(){
    			return $this->connexion;
    		}
     
     
     
    		function setHost($host){
    			$this->host = $host;
    		}
     
    		function setLogin($lgn){
    			$this->login = $lgn;
    		}
     
    		function setPwd($pwd){
    			$this->pwd = $pwd;
    		}
     
    		function setDB($db){
    			$this->db = $db;
    		}
     
    		function setConnexion($conn){
    			$this->connexion = $conn;
    		}
     
    }//fin de class connexion
     
    ?>
    c'est vrai j'ai tendance a calquer le modele sur un javabean java, ...déformation professionelle !!!

    si ca peux t'aider!!
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  12. #12
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Merci à toi, je vais étudier tout ca à fond
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  13. #13
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    Salut, en fait si tu reste a l'ecoutes de ce post, je t'ai peut etre pas donné quelque chose de si bien que ca, car la connexion s'etablie dans un appel direct mais j'eprouve quelque difficulté avec cet objet lorsqu'il est aapelé par un autre (un DAO par ex).

    MEACULPA !

    WDio
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  14. #14
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Désolé pour le décalage.

    Perso, je déteste appeler mes objets à la Java : monObjet, maConnexion, etc.
    C'est impersonnel et cela ne porte pas le sens que cela devrait.
    Pour une classe de connexion (class DB), voici les noms d'objets que je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $db['lycos'] = new DB('lycos_host', 'lycos_login', 'lycos_pass', lycos_port_nb);
    $db['free'] = new DB('free_host', 'free_login', 'free_pass', ;free_port_nb);
    $db['ovh'] = new DB('ovh_host', 'ovh_login', 'ovh_pass', ovh_port_nb)
    Bien sûr, si tu n'as qu'un hébergeur mais plusieurs bases, choisis le nom en fonction du nom de la base par exemple, ou bien de l'utilisateur, ou bien un mix, etc.
    Adapte à ton style, quoi.
    L'idée est de toujours choisir un nom d'objet (=concret) qui soit clairement différent du nom de la classe (=abstraite).

  15. #15
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    Salut Yogui !

    Pour le fond

    non en fait pour l'instant je suis loin de l'hebergeur car je realise un site personnel de présentation professionnelle et ce serait bien qu'il soit un peu un model ou une demonstration de competence...

    Aujourd'hui, je le developpe sur ma propre solution LAMP et j'ai mis en oeuvre des template smarty, maintenant pour la partie logique je veux realiser un projet entièrement en objet car mes template sont concu pour recevoir des objet en param et il font tout le reste de manière autonome.

    je le fais en PHP car les solutions d'hebergement java avec serveur d'application sont trop lourde a mettre en oeuvre pour ce petit site mais c'est pas exclu que j'en fasse une qui exploite les meme donnees par la suite en java en laissant le choix de l'application a mon visiteur.

    donc aj'h j'ai modeliser une base de données qui gere des CV et je pensais mettre le reste du contenu des articles dans une bases separée mais c'est pas dit que je ne l'integre pas par la suite dans une seule base, je ne suis pas encore decidé....

    pour la forme


    dans l'absolu j'aimerai que mon objet connexion puisse prendre en param n'importe quelle objet db et se connecter instantement sur celle ci,

    tiens bref, a ce propos, puisque tu es la ca serai bien que tu jette un coup d'oeil à mon "petit" post et a un pb objet de connexion qui me pose quelque soucis...

    http://www.developpez.net/forums/vie...760475#2760475

    Dionysos
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  16. #16
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Pourquoi veux-tu construire ton objet Connexion en utilisant un objet DB ? Ne serait-il pas plus simple de construire un objet DB à partir de chaînes de caractères comme je te l'ai proposé et de laisser la classe DB s'occuper de l'identifiant de connexion et de tous les trucs automatiques ?

    [P.S.] SVP, ne renvoyez pas à d'autres posts sur un thème différent. Faites simplement un UP si la discussion a été oubliée.

  17. #17
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    salut yogui,

    mon probleme est résolu. MrN a trouvé une solution qui fonctionne super bien.

    Pour ta remarque, dont je te remercie, c'est bien ce que j'avais fait au départ, j'ai changé en scindant mon objet connexion initiale en 2 objets connexion + database suite a la remarque de Jeff, parce que c'est vrai mon onjet connexion de départ importait ses parametres de connexion depuis un fichier de constantes de paramétrage ce qui peut etre dangeureux au point de vue de la securite car il est toujours possible que quelqu'un puisse editer les constantes est ainsi obtenir login, password et IP de la base. maintenant ces parametres sont encapsulés en dur dans mon objet database mais je recherche toujours une solution plus securisée, si tu a une idée ?

    Notament si je travaille avec une seule database, je pensais a mettre cet objet statique de la sorte que travailler sur la db revient a travailler sur l'objet db correspondant... je ne sais pas ....

    Pour le reste avec un ou deux objets, je suis partis du postulat que la propriété ident (identifiant de connexion) de mon objet connexion représentait ma connexion active mais cela etait fait il faut a chaque fois reappelé ma méthode de connexion au serveur..... la était mon erreur !

    ainsi dans mysql_query, je lui passais mon objet connexion (une reference en memoire et pas mon identifiant de connexion...

    WDionysos

    PS : c'est quoi un UP ?? ca doit faire remonter un sujet mais tu fais cela ou ?
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  18. #18
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    De mon point de vue, travailler avec des classes dont on ne créé qu'un seul objet est souvent une mauvaise idée. En effet, cela signifie qu'il n'y a pas de réelle distinction entre "classe" et "objet", alors que cette différence devrait être fondamentale ! Du moins, ça l'est dans le cas où la classe ne contient pas uniquement des propriétés.


    Citation Envoyé par wdionysos
    mon onjet connexion de départ importait ses parametres de connexion depuis un fichier de constantes de paramétrage ce qui peut etre dangeureux au point de vue de la securite car il est toujours possible que quelqu'un puisse editer les constantes est ainsi obtenir login, password et IP de la base
    Non, ce n'est dangereux que si ton serveur est mal configuré ou si ton site est mal fichu (extention .inc au lieu de .php, par exemple). Pour un site normal (surtout s'il y a une protection par fichier .htaccess), alors mettre les constantes de configuration dans un fichier est bien la meilleure solution. Ce n'est pas pour rien que la totalité des projets open source l'ont adoptée ^^

  19. #19
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    tres bien j'ai noter ces precieuses informations, je t'en remercie, je vais etudier à fond la question.

    WD
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] [POO] Classes PHP utilisables
    Par jcaspar dans le forum Langage
    Réponses: 1
    Dernier message: 09/08/2009, 01h13
  2. les avantages d'PHPEclipse par rapport aux autres IDE php
    Par young077 dans le forum Eclipse PHP
    Réponses: 2
    Dernier message: 29/08/2007, 10h09
  3. [POO] class php de gestion de stats
    Par cedsib dans le forum Langage
    Réponses: 5
    Dernier message: 18/05/2006, 12h43
  4. [POO] Classe PHP super simple Mais j'y arrive pas
    Par mulbek dans le forum Langage
    Réponses: 10
    Dernier message: 17/03/2006, 15h33
  5. [POO] [AVIS] L'utilité des classes
    Par Anduriel dans le forum Langage
    Réponses: 66
    Dernier message: 10/11/2005, 16h45

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