Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/06/2011, 12h32   #1
Invité régulier
 
Inscription : décembre 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 20
Points : 7
Points : 7
Par défaut Héritage et Static

Ola

Dans l'idée, je me suis fait une petite classe qui gère les enregistrements en BDD.

Dans l'idée :
Code :
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
 
abstract class database {
	protected $ID ; // ID of record
	protected $date_created ;
	protected $date_modified ;
	protected $data ;
	static protected $LIST_DATA = array() ;
	static protected $table ;
	private $query ; // array of query
 
	function __construct($ID=NULL)
	public function setData($ressource)
	function getID()
	function getData($field)
	function getAllData()
	function loadDataFromID()
	function add() {
		...
		$sql = "INSERT
			INTO ".STATIC::$table."(".implode(',',STATIC::$LIST_DATA).")
			VALUES (".$list_prep.")" ;
 
		...
	}
	function update()
	function save()
	function delete()
	function __destruct()
}
Avec mes STATIC $LIST_DATA et $table qui sont définies dans les classes filles. Par exemple :
Code :
1
2
3
4
5
6
7
 
class point extends database {
	static protected $LIST_DATA = array('point_lg','point_lt','point_order','route_id') ;
	static protected $table = 'cv_points' ;
 
... mes méthodes étendues ou surchargées en plus des héritées
}
En php 5.3 ça roule, mais en 5.2 ça coince.
J'ai lu ça : http://fr.php.net/manual/fr/language.oop5.static.php

Je voulais savoir si quand même il y avait une erreur de conception ou si c'était possible de mieux faire, à défaut de rendre les choses possibles avec php 5.2 ?

a+
Nico
nicolas.poulain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 13h27   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
tu peux regardé du coté du singleton/factory

Code :
database::gettable('test')->getAllData();
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 16h20   #3
Invité régulier
 
Inscription : décembre 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 20
Points : 7
Points : 7
Citation:
Envoyé par stealth35 Voir le message
tu peux regardé du coté du singleton/factory

Code :
database::gettable('test')->getAllData();
Ola

Ben j'ai déjà un singleton pour gérer la connexion à la base.
Là je veux une classe abstraite qui gèrent les manipulations des enregistrements (ajout suppression, modification, affichage débuggage...)

Le factory pourrait répondre (mais je suis pas sûr), mais je pense que ça doit être documenté sur le sujet.
Si il y a un lien qui va bien ?

a+
Nico
nicolas.poulain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 17h06   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
si tu reste en PHP 5.3 y'a pas de problème avec ta méthode

pour factory c'est dans la doc :
http://www.php.net/manual/fr/language.oop5.patterns.php

__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 18h49   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Citation:
En php 5.3 ça roule, mais en 5.2 ça coince.
L'usage du late static binding (le fait d'utiliser static::attribut) est un élément nouveau de PHP 5.3. ça ne fonctionnera JAMAIS en PHP 5.2. Désolé.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h10.


 
 
 
 
Partenaires

Hébergement Web