2010-04-09 7 views
4

Travailler dans un modèle de symfony, je veux passer outre une fonction et appeler la fonction surchargée à l'intérieur d'une dominante, le long des lignes deAppel méthode surchargée à l'intérieur méthode redéfinie dans OO PHP

class MyClass extends BaseMyClass { 

    function setMyProperty($p) { 
    parent::setMyProperty($p); 
    //do some other stuff 
    } 

} 

Cela se traduit par dans un défaut de segmentation. Je ne veux pas modifier la classe parente - elle a été générée par symfony, et peut éventuellement être écrasée à l'avenir si le modèle est reconstruit. Cela semble être quelque chose qui devrait être simple, mais j'ai du mal à trouver la solution.

+2

Cela ne devrait pas arriver. Veuillez fournir plus de données sur les messages d'erreur et vérifier vos fichiers journaux pour toute information supplémentaire. – Gordon

+0

quelle version de PHP utilisez-vous? – pinaki

+0

Notez que cela n'a rien à voir avec Symfony - c'est Doctrine. – Crozin

Répondre

-2

J'ai réussi à trouver une solution à ma propre question sur le symfony project forum.

Je ne peux pas appeler la fonction substituée car elle n'existe pas. Bien qu'il existe assez pour que je puisse l'ignorer.

Utilisation

$this->_set('my_property', $p); 

Travaux où

parent::setMyProperty($p); 

provoque l'erreur.

Notez que

$this->setMyProperty($p); 

fonctionne très bien dans ma classe si la méthode n'a pas été remplacé.

0

Depuis que vous avez vu le problème, je suppose que vous devez le marquer comme étant répondu pour le retirer de la liste sans réponse.

+0

oooppzz, désolé, je prévoyais de l'ajouter comme commentaire. nouvelle erreur de l'utilisateur. – Hanseh

+0

Je ne pouvais pas le marquer comme résolu jusqu'à 2 jours après que j'ai posté la solution. J'ai glissé mon esprit pendant le week-end - merci pour le rappel. – paddymcc

+0

mon plaisir. J'ai été intrigué par la question et je n'ai pas remarqué que vous aviez déjà une solution, c'est pourquoi j'ai fait un rappel. :RÉ – Hanseh

Questions connexes