[PHP5]CLASSE DE TEMPLATE PHP AVEC CACHE

coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
- 17 juin 2007 à 19:01
FhX
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
- 26 juin 2007 à 08:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43148-php5-classe-de-template-php-avec-cache

FhX
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
26 juin 2007 à 08:53
Je parlais du public/private au départ, mais avec Coucou on parlait du manque niveau POO :)
hametsu21
Messages postés
37
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
24 février 2008

25 juin 2007 à 20:54
j'ai pas trop compris vos recommendations. Sont-elles de l'ordre générale sur PHP et ses possibilités en POO ou de la source ?
FhX
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
25 juin 2007 à 15:56
En effet, ca manque aussi.
D'après ce que j'ai lu, il semblerait que ce soit pour PHP6.

Peut être :)
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
25 juin 2007 à 14:56
et mettre une classe dans un namespace ? :)

je ne parlais pas seulement de l'overloading de functions, mais aussi d'operator, faire :
$a=new Vector(1, 3, 5);
$b=new Vector(5, 3, 1);
$c=$a+$b;
comme on peut le faire en Cpp... moi ca me manque (d'autant plus que j'ai fait quelques classes lignes pour positionner des points en "live")
FhX
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
25 juin 2007 à 14:45
"Si ce n'est pas le cas, rien ne dit que les évolutions de l'application ou de l'objet n'amèneront pas ces contraintes."

Si on utilise les propriétés publiques, on se doute bien qu'au final il n'y aura pas d'évolution dans ce domaine. Je m'explique.
Prenons le cas d'une propriété de débug. Pas besoin de get/set pour du débug, on s'en carre le cornichon :)
Même si il y a évolution du projet derrière :

class x {
public $debug = false;
//
}
class y extends x {
//
}

$y = new y;
$y->debug = true;

Bon et voila :)
Dans ce cas la, le "public" fonctionne très bien et tu n'as pas besoin de faire :
$y->setDebug(true); ou $y->ActiveDebug();
C'est une perte de temps :o

Comme dit Coucou, ce qui manque, c'est la redéclaration des méthodes. Rien de plus beau (comme en Java) de faire :
public function __construct($var);
public function __construct($var, $truc);
public function __construct(Object $x, Object $y);
Sans avoir à se faire chier avec func_*() et autre fonction de ce genre.
Le namespace, tu peux y arriver via le statissisme :
class x {
static public function x1();
}

x::x1();
Et tu peux très bien arriver à un résultat de ce genre :
x::x1()->...()->...->...::...()->...();
Techniquement, je crois que ca passe.

Pour en revenir plus, chacun est libre de faire comme il veut.
Pour ma part, c'est simple :
abstract class Item {
public $debug = false;
}
abstract class Factory extends Item {
//
}
abstract class Element extends Item {
//
}
class NewsFactory extends Factory {
//
}
class News extends Element {
//
}

Pas besoin de m'ennuyer avec des méthodes qui servent à rien :)
Afficher les 27 commentaires