Page 1 sur 1

Petites précisions du mot clef static

Posté : 10 janv. 2010, 05:58
par niuxe
Salut tout le monde,

Je n'ai pas bien saisie l'utilisation de static dans les propriétés et méthodes. Dans quel cas peut on l'uitilser ? Pouvez vous m'en dire d'avantage SVP.

Par avance merci et bonne journée à vous.

Re: Petites précisions du mot clef static

Posté : 10 janv. 2010, 12:35
par ooflorent
Je te conseille de lire ceci : Portée des variables.

Re: Petites précisions du mot clef static

Posté : 10 janv. 2010, 13:15
par niuxe
Hello,

Ce matin, j'ai regardé dans la doc, mais pas au bon endroit.

Merci et bonne journée à toi.

Re: Petites précisions du mot clef static

Posté : 10 janv. 2010, 22:05
par AB
Salut tout le monde,

Je n'ai pas bien saisie l'utilisation de static dans les propriétés et méthodes. Dans quel cas peut on l'uitilser ? Pouvez vous m'en dire d'avantage SVP.

Par avance merci et bonne journée à vous.
Tu as deux exemples d'utilisation dans ce topic

Re: Petites précisions du mot clef static

Posté : 15 janv. 2010, 22:33
par niuxe
Hello AB,
Ta réponse, je la trouve pertinente et je t'en remercie. :) Merci aussi à toi Zeus pour le Multiton. Je crois avoir compris. Je suis en plein Singleton et je commence à mieux comprendre. Si j'ai bien saisie, lors d'une connection a une base $instance peut avoir plusieurs connection (ex : ORACLE et Mysql) cela évite ce genre d'écriture entres autres :
$oracle = new MaBase($dsnOracle);
$mysql = new MaBase($dsnMysql);
//etc.
$instance et getInstance doit être static, c'est pour éviter des erreurs de traitement si on reste sur un seul modèle ($connectionBase = new maBase($dsn)) ? D'ailleurs, je pense qu'il est bon d'étendre pdo vers un Singleton, non ?

Bonne soirée ^^

Re: Petites précisions du mot clef static

Posté : 15 janv. 2010, 22:46
par ooflorent
D'ailleurs, je pense qu'il est bon d'étendre pdo vers un Singleton, non ?
Oui et non. Il y a 2 ou 3 ans je t'aurais dit oui, mais aujourd'hui la mode est à l'utilisation de registres de données (d'ailleurs une grande majorité des singletons de Zend Framework va être retirée pour la version 2). Ces fameux registres permettent une utilisation plus souple de tes classes. Aujourd'hui je vois, il m'arrive d'utiliser 2 voire 4 connexions PDO différentes (par paire pour mettre en place une archi master/slave) ce qui n'est pas possible avec des singletons !

A toi de faire ton choix en fonction de tes besoins.

Re: Petites précisions du mot clef static

Posté : 15 janv. 2010, 22:58
par niuxe
Registre de données ? C'est à dire ?
... Aujourd'hui je vois, il m'arrive d'utiliser 2 voire 4 connexions PDO différentes (par paire pour mettre en place une archi master/slave) ce qui n'est pas possible avec des singletons !
C'est en rapport avec les privilèges d'accès à la ou aux bases de données non ?

Re: Petites précisions du mot clef static

Posté : 15 janv. 2010, 23:07
par ooflorent
Non. Les architectures master-slaves sont une des solutions possibles permettant d'effectuer des réplications de bases de données afin de scaler ton application. Etant donnée que l'architecture oblige d'utiliser plusieurs serveurs de base de données, les paramètres de connexion diffèrent à chaque fois. Si j'utilisais un singleton pour ma connexion, je ne pourrais accéder qu'à un seul serveur. Si je n'ai besoin que d'une instance PDO pour chacun des serveurs, ce n'est pas singleton ! D'où l'utilisation de registre pour stocker mes instances et pouvoir les réutiliser.

Re: Petites précisions du mot clef static

Posté : 16 janv. 2010, 00:39
par niuxe
Etant donnée que l'architecture oblige d'utiliser plusieurs serveurs de base de données, les paramètres de connexion diffèrent à chaque fois. Si j'utilisais un singleton pour ma connexion, je ne pourrais accéder qu'à un seul serveur. Si je n'ai besoin que d'une instance PDO pour chacun des serveurs, ce n'est pas singleton ! D'où l'utilisation de registre pour stocker mes instances et pouvoir les réutiliser.
Je crois avoir saisie mais dans ce cas là, il n'y a pas un design pattern approprié ? Je pense à un factory mais je fais peut être fausse route ?

Re: Petites précisions du mot clef static

Posté : 16 janv. 2010, 01:09
par ooflorent
factory permet juste de faciliter la création de l'instance, il ne définit pas la façon dont l'objet va être accessible contrairement à singleton, multiton ou registry. Il existe beaucoup de patterns et pas que ceux du GoF ! Je te conseille d'y jeter un oeil : Entreprise patterns.

Re: Petites précisions du mot clef static

Posté : 16 janv. 2010, 05:08
par AB
D'ailleurs, je pense qu'il est bon d'étendre pdo vers un Singleton, non ? Bonne soirée ^^
A toi de faire ton choix en fonction de tes besoins.
Tout est dit dans cette phrase. Ni plus ni moins.

Il n'y a pas lieu de généraliser des exemples qui ne sont pertinents et optimisés qu'en fonction du contexte. De même qu'il n'y a pas plus d'intérêt à suivre des nouvelles "modes" qui également ne sont pertinentes et optimisées qu'en fonction du contexte etc.

Encore une fois, à toi de voir en fonction de tes besoins si cela est intéressant ou non :wink:

Re: Petites précisions du mot clef static

Posté : 18 janv. 2010, 09:09
par niuxe
Hello,

Merci du lien Florent, je vais jeter un coup d'oeil. Je savais qu'il n'y avait pas que les patterns du GoF. D'ailleurs, là je vois que je vais devoir étudier de plus près les patterns du gang.

Bonne journée à vous deux :)

Re: Petites précisions du mot clef static

Posté : 24 mars 2010, 15:10
par devlop78
Perso : Singleton.
$Maclass = MaClass::getInstance();

et Hop tu récupères ton objet partout.

Ou si t'as pas besoin de ton objet, tu fais tout en static
Par exemple
MaClass::getTime() ou MaClass::query('INSERT INTO ...'); etc