Jump to content

Surcharge classes pas toujours possible?


Raph59

Recommended Posts

Bonjour,

 

Bon j'ai hésité entre ici et le forum développeur... j'espère avoir bien choisi!

 

J'ai fait plusieurs petite surcharge de classe / controller qui fonctionne à merveille! la pluspart du temps, j'utilise un parent::fonction() puis je fait ma petite modification.

 

En revanche, parfois j'ai un problème car cela ne fonctionne pas, même en surchargeant la fonction avec parent::fonction() et en ne modifiant rien, un exemple tout simple sur le problème que j'ai actuellement.

 

dans override/classes , je cré le fichier PDF.php avec ceci dedans

 

<?php
class PDF extends PDFCore
{
public static function invoice($order, $mode = 'D', $multiple = false, &$pdf = NULL, $slip = false, $delivery = false)
{
 parent::invoice($order, $mode = 'D', $multiple = false, &$pdf = NULL, $slip = false, $delivery = false);
}
}

 

Dans l'état ceci ne sert à rien bien entendu si ce n'est de tester si au moin ceci fonctionne, mais déjà juste avec ce code j'ai une page blanche quand j'essais de générer une facture .PDF donc pour le moment inutile d'aller plus loin ^^... certain ont rencontré le même problème ?

 

J'ai effectué plusieurs modification de ce type sans problème avec des classes et controllers, mais parfois ca ne fonctionne pas alors qu'on fait juste un parent::function() ... parfois pour que cela fonctionne il a fallu que je recopie au complet une fonction qui était appelé dans la fonction, mais dans ce cas sa perd un peu de son interet quand même, donc est-ce moi qui l'utilise mal?

 

Je ne sais pas si j'ai été très clair dans ma dernière phrase ^^ par exemple dans classes/PDF.php j'ai la fonction invoice qui elle meme à l'intérieur fait appel a la fonction Header qui se trouve dans ce même fichier.

 

Et bien si je créé un fichier override/classes/PDF.php et que à l'intérieur j'y place la fonction invoice avec un parent::invoice(), cela ne fonctionne pas, il faut que je recopie au complet la fonction Header (c'est qu'un exemple, je n'ai pas tester ceci en particulier ^^)

 

Bref si quelqu'un serai m'éclairer sur ce point ca serai bien sympathique :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...