Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2011, 00h09   #1
Invité de passage
 
Inscription : février 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 3
Points : 0
Points : 0
Par défaut Problème d'include avec librairie PHPPowerpoint

Bonjour,

J'ai récemment créé un programme en PHP/MySQL. Une fois qu'il est exécuté, il affiche en sortie un ensemble de données (textuelles). Jusque là, tout fonctionne parfaitement.
Je souhaiterai intégrer ces données et créer un powerpoint à la volée dans lequel ces données seraient mises.

Pour cela, j'ai trouvé après quelques recherches une libraire nommée PHPPowerpoint qui fait exactement cela. Il s'agit en fait d'un ensemble de classes qui permet de créer des slides (à partir de rien) et d'ajouter des zones de textes, images etc.

J'ai téléchargé puis installé cette librairie (dernière version PHPPowerpoint) et l'ai testé sur mon pc perso en local, elle fonctionne très bien.

Voici l'arborescence de la libraire:
- PHPPowerpoint/Tests/02presentation.php
- PHPPowerpoint/Classes/PHPPowerpoint/ (dossier, qui contient pleins de fichiers .php de la librairie)
- PHPPowerpoint/Classes/PHPPowerpoint.php

Le développeur qui a créé cette libraire a même pensé à faire plusieurs scripts de tests qui se trouvent dans le répertoire "Tests". Pour mon test, j'ai essayé d'exécuter le fichier ./Tests/02presentation.php", qui génère dans le répertoire courant un fichier 02presentation.pptx si le script s'exécute correctement.

Config: OS: Windows Vista, plateforme de dév: WAMP5 (php version 5.3.0).

Problème:
Je souhaiterai maintenant utiliser cette librairie sur un serveur. Sa configuration est un peu différente (OS: Ubuntu, PHP Version 5.3.2-1ubuntu4.7).
J'ai correctement installé apache et mysql, puis copié cette librairie dans "/var/www/" sous le répertoire "PHPPowerpoint".

Je lance le test: http://sous-domaine.domaine.com/PHPP...esentation.php, et là, il n'affiche que le message suivant: "21:42:32 Create new PHPPowerPoint object".

Concrètement, si on regarde dans le code source du fichier ./PHPPowerpoint/Tests/02presentation.php, je constate d'après les logs d'apache (/var/log/apache2/error.log) qu'il n'arrive pas à construire l'objet PHPPowerpoint car il n'arrive pas à trouver le fichier "./PHPPowerpoint/Classes/Powerpoint.php".

Les fichiers de logs m'indiquent des warning/erreurs.
Je pense que le problème vient de l'inclusion tout simplement des fichiers ligne 35 et 38, nécessaire pour accéder à la classe PHPPowerpoint (et à son constructeur) et aux différentes méthodes sous-jacentes.
D'après les logs, il n'arrive pas à y accéder.

Essais effectués:
1 - J'ai essayé de mettre le chemin en absolu et non en relatif pour lui indiquer précisément où étaient les classes (include '/var/www/PHPPowerpoint/Classes/PHPPowerpoint.php', par exemple, au lieu d'un simple include 'PHPPowerpoint', mais il ne la trouve toujours pas).
2 - Je suis aussi passé par la solution relative:
Code :
include ($_SERVER['DOCUMENT_ROOT']."/PHPPowerpoint/Classes/PHPPowerpoint.php";
mais cela n'a rien changé.
3 - J'ai modifié le set_include_path() ligne 32 et ai rajouté le chemin absolu vers le répertoire classe après le PATH_SEPARATOR, mais cela ne change rien
4 - Enfin, j'ai regardé le fichier php.ini du serveur apache, et j'ai modifié la variable instance_path de façon à rajouter par défaut le chemin /var/www/PHPPowerpoint/Classes/, mais cela ne change rien non plus.
5 - J'ai même modifié l'ensemble des include, require, require_once des fichiers de la librairie en mettant exclusivement des chemins absolus pour indiquer où chercher les fichiers, mais cela n'a pas eu d'effet.
6 - Dernière chose, en début du fichier 02presentation.php, il y a le code suivant:
Code :
1
2
3
4
set_include_path(get_include_path() . PATH_SEPARATOR . '../Classes/'); , 
include 'PHPPowerPoint.php';
include 'PHPPowerPoint/IOFactory.php';
$objPHPPowerPoint = new PHPPowerPoint();
Je pense qu'il y a un problème avec le set_include_path et qu'il n'arrive pas à indiquer où trouver le fichier /var/www/PHPPowerpoint/Classes/PHPPowerpoint à mon fichier /var/www/PHPPowerpoint/Tests/02presentation.php

Il continue d'afficher des warning et une erreur à la fin car il ne trouve pas la classe "PHPPowerpoint". Je suis à court d'idée à ce niveau.

Est-ce que vous sauriez me dire svp pourquoi il n'arrive pas à le trouver et comment faire pour que les include fonctionnent correctement ?

Merci beaucoup par avance pour votre aide.

PS: je pense que ce post est sensiblement similaire, mais je n'ai pas vraiment compris l'histoire du CLI
edelacro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 00h34   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
Les fichiers de logs m'indiquent des warning/erreurs.
Je pense que le problème vient de l'inclusion tout simplement des fichiers ligne 35 et 38
Quelle est la première erreur ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 00h42   #3
Invité de passage
 
Inscription : février 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 3
Points : 0
Points : 0
La première erreur est lors du premier include() pendant l'appel de PHPPowerpoint:

Citation:
Warning: include(PHPPowerPoint.php) [function.include]: failed to open stream: No such file or directory in /var/www/PHPPowerpoint/Tests/02presentation.php on line 35
edelacro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 00h44   #4
Invité de passage
 
Inscription : février 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 3
Points : 0
Points : 0
Voici d'ailleurs la suite de warning généré avant l'erreur fatal (car il ne peut pas trouver la classe PHPPowerpoint pour construire l'object PHPPowerpoint):

Warning: include(PHPPowerPoint.php) [function.include]: failed to open stream: No such file or directory in /var/www/PHPPowerpoint/Tests/02presentation.php on line 35

Citation:
Warning: include() [function.include]: Failed opening 'PHPPowerPoint.php' for inclusion (include_path='.:/usr/share/php:/var/www/PHPPowerpoint/Classes/') in /var/www/PHPPowerpoint/Tests/02presentation.php on line 35
Citation:
Warning: include(PHPPowerPoint/IOFactory.php) [function.include]: failed to open stream: No such file or directory in /var/www/PHPPowerpoint/Tests/02presentation.php on line 38
Citation:
Warning: include() [function.include]: Failed opening 'PHPPowerPoint/IOFactory.php' for inclusion (include_path='.:/usr/share/php:/var/www/PHPPowerpoint/Classes/') in /var/www/PHPPowerpoint/Tests/02presentation.php on line 38
23:37:55 Create new PHPPowerPoint object
Citation:
Fatal error: Class 'PHPPowerPoint' not found in /var/www/PHPPowerpoint/Tests/02presentation.php on line 38
edelacro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h22.


 
 
 
 
Partenaires

Hébergement Web