Premiers pas en poo -> obscur !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Premiers pas en poo -> obscur !

par didgar » 05 févr. 2006, 03:38

Salut !
.../ Par contre si je peux me permettre quelques conseils :
Pas de souci, c'est pour ça que j'ai posté !

Merci pour le lien et les conseils ;-)

A+

Didier

par Ouaibou » 04 févr. 2006, 21:43

Salut,

Pour faire simple, le principe d'abstraction consiste à ignorer les détails d'un problème pour se concentrer sur un niveau supérieur du problème.

Pour ce qui est de ton exemple c'est bien, faut pratiquer pour progresser. Par contre si je peux me permettre quelques conseils :

- Le nom d'une classe commence toujours par une majuscule (c'est une règle, après à toi de voir si tu veux la respecter)

- Les fonctions/méthodes et variables/champs d'une classe ont des niveaux de visibilité: public, private, protected ( http://www.commentcamarche.net/poo/encapsul.php3 ).

Bon courage.

@+

par didgar » 03 févr. 2006, 23:36

Salut !

Afin d'éviter les foudres des uns ou des autres, je précise que je n'ai pas de question particulière. Je montre c'est tout !

Remarques et conseils bienvenues car j'en chie grave avec la poo :oops:

J'ai fait ça ! Chuis pas sur que ça puisse avoir un quelconque intérêt, c'était juste pour essayer. Ca marche en plus.
<?php

class mysqlconnect
{
	public $base;
	public $base_id;
	public $erreur;
	public $mode;
	
	function __construct($server,$login,$pass,$base)
	{
		$this->base = $base;
		
		if(function_exists('mysqli_connect'))
		{
			$this->mode = 'MySQLI';
			$this->base_id = mysqli_connect($server, $login, $pass) or $this->erreur = 'Impossible de se connecter au serveur MySQL';
			mysqli_select_db($this->base_id,$base) or $this->erreur = 'Impossible de sélectionner la base.';
			
		}
		else
		{
			$this->mode = 'MySQL';
			$this->base_id = mysql_connect($server, $login, $pass) or $this->erreur = 'Impossible de se connecter au serveur MySQL';
			mysql_select_db($base, $this->base_id) or $this->erreur = 'Impossible de sélectionner la base.';
		}
	}
}


// essais //

$connexion = new mysqlconnect('localhost','root','','ma_base');

if($connexion->erreur)
{
	echo $connexion->erreur;
}
else
{
	echo 'Connexion MySQL -> ',$connexion->base_id;
	echo '<br />Mode de connexion -> ',$connexion->mode;
	echo '<br />Connexion à la base -> ',$connexion->base;
}

?>


A+

Didier

par didgar » 02 févr. 2006, 22:54

j'espere que ca peut t'aider a y voir un peut plus clair
Je sais pas ! Je verrai bien ;-)

En tous cas, merci pour les précisions, les liens etc ... Je vais étudier tout çà !

A+

Didier

par jeff » 02 févr. 2006, 22:48

alors l'abstaction

imagine que tu est plusieur base differente (Mysql,oracle.....)
c'est base on des drivers differents pout y acceder.
toi pour simplifier ton travail tu veut une seule methode d'acces

tu peu definir par exemple une class AbstractDB qui aura le plus haut degre d'abstraction(qui ne tient pas compte des methodes d'acces au differente base)
cette clase pour acceder au base va faire appel a une class specialisé qui sera par exemple AccessMysql(pour une base mysql)
http://www.phpriot.com/d/articles/php/o ... age7.html
la class Mere(AbstractDB ) peut aussi faire appel a une class SQl pour executé une requete

remarque : l'abstraction telle que je l'ai decrite est differente d'une class abstraite(abstract class)

la 'raison d'etre d'un objet ', j'ai dis ca car des fois on est tenté de faire des objets qui ne font pas grand chose ou qui n'apporte pas grand chose(voir refactoring dans le best pratice)

quand je parle de dialogue entre objet je fait allusion au pattern dont un certain nombre sont decri dans le best practice (en tout plus que je n'en pu voir sur le net)
http://qwix.media-box.net/index.php/DesignPatterns


j'espere que ca peut t'aider a y voir un peut plus clair

par didgar » 02 févr. 2006, 22:21

Je trouve l'ex des voitures relativement explicite. C'est le pont entre cet exemple et mes applis que j'ai du mal à entrevoir.
a la place des voiture tu peut imaginer des utilisateurs ayant des droit different
Bien vu !!! J'avais pas pensé à ça ;-)
moules
exemple marant :lol:
Je sais pas ce qui m'a pris ;-)
sinon une classe peut avoir un degre d'abstraction plus ou moins elever
si tu veut que tes class soient un max reutilisables il faut un degré d'abstraction eleve

ce qui est interessant est aussi et surtout le dialogue entre differents objets

mais il faut toujours garder a l'esprit qu'un objet a toujours une raison d'etre
Rien que d'y penser j'ai déjà mal au casque ! Absctraction, dialogue entre les différents objets, raison d'être ... que de réjouissances au programme ...

Je t'ennuie si je te demande de faire un peu de lumière sur ces trois derniers points ??? en plus faire de la lumière sur l'abstraction c'est ... class ...

Merci pour tes réponses en tout cas !

A+

Didier

par jeff » 02 févr. 2006, 20:28

Je trouve l'ex des voitures relativement explicite. C'est le pont entre cet exemple et mes applis que j'ai du mal à entrevoir.
a la place des voiture tu peut imaginer des utilisateurs ayant des droit different
moules
exemple marant :lol:
sinon une classe peut avoir un degre d'abstraction plus ou moins elever
si tu veut que tes class soient un max reutilisables il faut un degré d'abstraction eleve

ce qui est interessant est aussi et surtout le dialogue entre differents objets

mais il faut toujours garder a l'esprit qu'un objet a toujours une raison d'etre

par didgar » 02 févr. 2006, 20:03

Salut !

Merci pour ta réponse.
salut
la POO demande peut etre plus de reflexion que l'utilisation de fonction
il est vrai que l'histoire des voitures peut paraitre pas tres clair
mais pourtant cet exemple reprend bien le principe de la poo
Je trouve l'ex des voitures relativement explicite. C'est le pont entre cet exemple et mes applis que j'ai du mal à entrevoir.
il faut d'abord que tu determine ce qu'est un objet( c'est le pls dure apres ca va mieux)

pour moi un objet c'est un systeme qui a des proprites que l'on peut modifier
Pour moi, un objet est issu d'un moule ( class ) +/- généraliste et tout cas le moins restrictif possible avec des attributs et méthodes généralistes.

Si j'ai bien compris, les spécificités ( attibuts et méthodes plus spécifiques ) apparaisent dans des classes genre extends moule d'origine .

Je suppose que tout l'intérêt de la poo réside ici ! Récupérer un ou plusieurs niveaux de "moules" assez généralistes pour ne plus avoir qu'à développer les spécificités !
pour les tutos je n'en ai jamais trouver de bien
peut etre que le 'best practice' de eyrolle et 'modeliser un site de e-commerce' pourrait t'ouvrit l'esprit a la POO

il y a que en pratiquant que tu affinera ton model objet
donc lance toi et corrige tes erreurs :wink:
Dommage ! J'aurai bien souhaité un tuto_qu'il_est_bien_pour_les_neuneus ;-)

J'ai aussi le Best Practices ! N'étant pas informaticien pur et dur, je le trouve un peu indigeste pour l'instant. Je vais continuer mes recherches et me lancer comme tu dis.

A+

Didier

par jeff » 02 févr. 2006, 18:55

salut
la POO demande peut etre plus de reflexion que l'utilisation de fonction
il est vrai que l'histoire des voitures peut paraitre pas tres clair
mais pourtant cet exemple reprend bien le principe de la poo

il faut d'abord que tu determine ce qu'est un objet( c'est le pls dure apres ca va mieux)

pour moi un objet c'est un systeme qui a des proprites que l'on peut modifier

pour les tutos je n'en ai jamais trouver de bien
peut etre que le 'best practice' de eyrolle et 'modeliser un site de e-commerce' pourrait t'ouvrit l'esprit a la POO

il y a que en pratiquant que tu affinera ton model objet
donc lance toi et corrige tes erreurs :wink:

Premiers pas en poo -> obscur !

par didgar » 02 févr. 2006, 18:47

Salut !

Je suis en train d'essayer de faire mes premiers pas en poo.
J'ai regardé les tutos du site et j'ai également le bouqin de Cyril, PHP 5 avancé.

Je crois vaguement saisir certaines subtilités mais j'ai du mal à faire le lien entre le tuto sur les voitures du ce site et la vraie vie.

Si quelqu'un a dans son tiroir l'adresse d'un tuto complet, cad depuis la création de la classe jusqu'à l'utilisation finale, ça m'intéresse. Si en plus il y a une interaction avec une base c'est le top.

Les cas qui m'intéressent ? Gestion de membres, articles, messagerie interne, produits liés à des marques modèles etc ... la vraie vie quoi !

Merci d'avance.

[EDIT]
Pas taper si mes interrogations sont débiles, c'est pas la peine !
[/EDIT]

A+

Didier