[RESOLU] Problème d'include dans une classe

Eléphant du PHP | 294 Messages

24 sept. 2015, 19:26

Bonjour, j'ai un soucis avec une boucle sur une classe qui me semble venir d'un problème de memoire Php ou peut être plus simplement d’incompétence de ma part...je m'explique:
il s'agit d'un classe nommée catalogue qui fabrique des pdf a partir de tcpdf, elle commence avec ça

public function __construct(){
include (__DIR__."/../class/tcpdf/tcpdf.php");
}

puis des fonctions..

dans une page j'ai une boucle sur des catalogues censée produire autant de pdf et faisant appel a la fonction qui nécessite l'include

un truc de ce type :

while ($catalogues->fetch()) {

$catpdf= new catalogue;
$catpdf->mycat_pdf_auteur = $this->name;
$catpdf->mycat_pdf_titre= $titre;
$catpdf->mycat_pdf_date= $date_creation;
$catpdf->mycat_pdf_description=$description;
$catpdf->mycat_pdf_format=$format;
$catpdf->mycat_pdf_comment=$comment;

$catpdf->produce_pdf_catalogue();

}

le problème c'est que la première instance produit bien le catalogue pdf, mais dés la seconde ça bloque et seulement sur le chargement de l'include , qui forcement est rechargé à chaque "new", comme la class tcpdf est assez lourde je suspect un problème de mémoire..je n'ai aucun message d'erreur..je cherche à comprend et à résoudre ce soucis.
merci

Mammouth du PHP | 2703 Messages

24 sept. 2015, 20:44

tu le mets ailleurs, pour qu'il ne soit appelé qu'une fois, et que cela soit plus propre.

Eléphanteau du PHP | 10 Messages

24 sept. 2015, 21:37

Solution immédiate : remplacer include par requiere_once.

Solution à long terme :
Inclure ce fichier en dehors de ta classe. Il n'a rien à faire là. Vraiment rien. Ta classe doit pouvoir fonctionner quelque soit le fichier inclut, elle n'a aucun rapport avec ce dernier.

Eléphant du PHP | 294 Messages

24 sept. 2015, 22:07

Merci pour vos réponses, j'ai appliqué, ça fonctionne...