IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Manque un include? [ZF 1.11]


Sujet :

Zend Framework PHP

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut Manque un include?
    Bonjour, j'ai rajouté à ma librairie, une me permettant de redimensionner des images (pour me créer des vignettes).

    Cela fonctionne sans problème lorsque j'appel la méthode mais étant donné que c'est un traitement que je suis amené à faire plusieurs en plus de vérifier certaines dimensions et autres choses avant de redimensionner, je me suis décidé à faire une classe avec une méthode statique que j'ai placé dans mon dossier 'models'.

    Seulement, lorsque dans ma méthode statique, elle appelle la méthode pour redimensionner, j'obtiens un message d'erreur me disant que ma classe n'existe pas.

    J'ai en premier pensé à un problème de chargement de librairie mais ce n'est pas possible puisque sinon j'aurais un problème avec Zend_Application.

    Je suis donc allé vérifier que ma classe existe bien et il n'y a pas de problème de ce côté là, mais j'ai un problème au niveau de mon include_once :
    Warning: include_once(Thumbnailer/CreateThumb.php) [function.include-once]: failed to open stream: No such file or directory in /home/***/public_html/***/library/Zend/Loader.php on line 146
    Ma librairie se trouve à ce chemin:
    nomProjet/library/Zend/Thumbnailer
    J'ai bien déclaré ma nouvelle librairie comme il l'est dit dans le tutoriel que je me suis inspiré.

    D'où peut provenir ce problème svp?
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Dans la config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    includePaths.library = APPLICATION_PATH "/../library"
    pointe sur le dossier library, avec l'appele que tu fais il va chercher directement dans le dossier library.
    pour récuperer ta lib tu dois ajouter le dossier Zend
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once "Zend/Thumbnailer/CreateThumb.php"
    PS
    Quand tu appele une class Zend "Zend_Controller_Action" l'autoload cherche le chemin "Zend/Controller/Action.php"

  3. #3
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Bonsoir,
    Tu ne devrais pas avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nomProjet/library/Zend/Thumbnailer
    mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nomProjet/library/Thumbnailer
    Et le code à placer dans ton bootstrap permettant d'utiliser cette librairie est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Zend_Loader_Autoloader::getInstance()->registerNamespace('Thumbnailer');

  4. #4
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Citation Envoyé par m4riachi Voir le message
    Dans la config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    includePaths.library = APPLICATION_PATH "/../library"
    pointe sur le dossier library, avec l'appele que tu fais il va chercher directement dans le dossier library.
    pour récuperer ta lib tu dois ajouter le dossier Zend
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once "Zend/Thumbnailer/CreateThumb.php"
    PS
    Quand tu appele une class Zend "Zend_Controller_Action" l'autoload cherche le chemin "Zend/Controller/Action.php"
    Ah ben tu as répondu avant moi.
    Mais je vois que j'ai bien fait de répondre.
    QUAND ON UTILISE UNE LIBRAIRIE, ON NE MODIFIE RIEN SUR CELLE CI. INTRODUIRE UN RÉPERTOIRE DANS CELLE CI MODIFIE CETTE DERNIÈRE ET UN OUBLI LORS DE LA MISE A JOUR DE CETTE DERNIÈRE PEUT POSÉ BIEN DES TRACAS.

    Le dossier library doit contenir l'ensemble des librarie directement, et le registerNamespace permet de déclarer les nouvelles librairies.

  5. #5
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    J'obtiens toujours la même erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: include_once(Thumbnailer/CreateThumb.php) [function.include-once]: failed to open stream: No such file or directory in /home/***/public_html/***/library/Zend/Loader.php on line 146
    Pourtant, j'ai bien tout déclarer:
    Bootstrap.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected function _initResize()
    {
    	Zend_Loader_Autoloader::getInstance()->registerNamespace('Thumbnailer');
    }
    Ma librairie est bien dans le répertoire library:
    nomProjet/library/Thumbnailer
    Il manque quelque chose?
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  6. #6
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Bonjour tu es bien en autoload ?
    Comment appelle tu la classe?

  7. #7
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    Oui je suis bien en autoload puisque j'arrive à accéder à tout ce que je veux de ma librairie Zend (si j'ai bien compris le fonctionnement) puis si ce n'était pas le cas, je n'aurais pas eu une erreur de Zend_Loader?

    Pour appeler ma classe, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Thumbnailer_CreateThumb::createThumbnail($chemin, $chemin, $width, $height);
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  8. #8
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Dans ce cas là tu n'as pas le répertoire Thumbnailer directement à la base du répertoire library

  9. #9
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    Pourtant si :


    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  10. #10
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Es tu sur du nom da ta classe ?

  11. #11
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    Oui, voici son code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    class Thumbnailer_CreateThumb
    {
    	/**
    	* Create thumbnail of an image
    	* @param     string    Path of source image
    	* @param     string    Destination path of thumbnail
    	* @param     number    Width of thumbnail
    	* @param     number    Height of thumbnail
    	* @param     number    (optional) thumbnail image format : JPG, GIF, PNG
    	*/
    	public static function createThumbnail($sourcePath, $destPath, $width, $height, $q = 'JPG')
    	{
    		$thumb = Thumbnailer_ThumbLib::create($sourcePath);
    		$thumb->resize($width, $height);
    		$thumb->save($destPath, $q);
     
    		return $destPath;
    	}
    }
    En faisant un Ctrl + passer la souris sur le nom de la classe avec Eclipse, il ne me propose pas de l'inspecter donc il ne la voit pas.

    Eclipse voit toutes mes autres classes de ma librairies Thumbnailer sauf Thumbnailer_CreateThumb lorsque que j'écris 'Thumb' avec l'auto-compression.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  12. #12
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Tu bien les tags PHP?

  13. #13
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    Oui, j'ai bien les tags php ( <?php ) dans mon fichier.

    Comme Eclipse arrive à voir mes autres classes et que la classe de la librairie dont j'ai besoin en utilise une qui a se code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    class Thumbnailer_CreateThumb
    {
    	/**
    	* Create thumbnail of an image
    	* @param     string    Path of source image
    	* @param     string    Destination path of thumbnail
    	* @param     number    Width of thumbnail
    	* @param     number    Height of thumbnail
    	* @param     number    (optional) thumbnail image format : JPG, GIF, PNG
    	*/
    	public static function createThumbnail($sourcePath, $destPath, $width, $height, $q = 'JPG')
    	{
    		$thumb = Thumbnailer_ThumbLib::create($sourcePath);
    		$thumb->resize($width, $height);
    		$thumb->save($destPath, $q);
     
    		return $destPath;
    	}
    }
    Je me dis que je pourrais contourner ca en me créant une classe dans mon répertoire models et y mettre ce code, ca fait un peu bidouille mais cela fonctionnerait sans problème?
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  14. #14
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    Ca ne fonctionnait pas parce que je n'avais pas rajouté le chemin de ma librairie dans mon include_path, maintenance, ca fonctionne, c'est résolu, merci. smile
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenAL]Manque de fichiers d'include
    Par Invité dans le forum C++
    Réponses: 4
    Dernier message: 01/05/2009, 16h51
  2. #include <QTcpSocket> manque
    Par uriotcea dans le forum Qt
    Réponses: 5
    Dernier message: 18/04/2007, 19h43
  3. [stl_alloc.h] Manque un include
    Par Longrais dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 04/04/2007, 11h51
  4. [Kylix] Base de donnée - Manque .so
    Par pacpac dans le forum EDI
    Réponses: 2
    Dernier message: 02/07/2003, 18h31
  5. #include "math.h" et #include <math.h>
    Par pounka dans le forum C
    Réponses: 4
    Dernier message: 01/05/2003, 21h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo