1

Les methodes magic de php5 ont l'air de n'en faire qu'à leur tète.
Je poste juste pour qu'on me confirme ce que j'ai constaté :

L'overriding n'est pas supporté en Php dans le cas des methodes magic.

un article ici parle d'un aspect :
appel d'une method non defini dans un parent qui contient la methode magic __call

j'ai essayé d'override __call dans une classe enfant, la methode de la enfant est invisible dans le cas des méthodes magic.

2

heu, je peux me tromper, ca pourrait fenir du fait que tu mixes des habitudes PHP4 et PHP5...

t'as essayé en précisant bien quelles méthodes sont protected, privates, public, final, static, .... car là PHP n'a aucune manière de savoir la portée de chacune de tes classes, et pourrait s'y perdre (mais je peux me tromper bien sur)

Ancien pseudo : lolo

3

J'ai commencer à coder en OO à partir de Php5.
l'overriding normalement ne concerne que les methodes publiques.

4

Je pense qu'unon peu faire un test rapide avec cet expemple :


Parent {

public function __call($name, $args) {

echo "Method :: $name<br/>";
echo "Arguments ::<br/> "
var_dump($args);
echo '<br/>;

}

}


Child extends Parent {

public function __call($name, $args) {

echo 'Child ';
parent::__call($name, $args);

}

}


c = new Child();
c->getMethod('test');


le code ci_haut affiche :

Method :: getMethod
Arguments ::
array( 'test' )


au lieu de :

Child Method :: getMethod
Arguments ::
array( 'test' )


preuve que les methodes magic de php5 ne supportent pas l'overriding.