Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Symfony2]Inclure une bibliothèque externe(phpCAS)

    3 juillet 2013 à 15:30:46

    Oui en effet j'aurais peur etre du préciser, mais oui c'est bien cette ligne.
    • Partager sur Facebook
    • Partager sur Twitter
      3 juillet 2013 à 15:31:48

      oui en effet c'est cette ligne la qui me pose probleme.
      • Partager sur Facebook
      • Partager sur Twitter
        3 juillet 2013 à 15:33:28

        dlestrat a écrit:

        l'arborescence de la librairie Et voici l’arborescence avec la librairie html2pdf qui se situe dans src :D


        J'ai relu plusieurs fois ton message car je trouvais que tu avais tout pareil que moi et ça m'intriguait que ça ne marche pas.

        Mais cette phrase que j'ai cité m'a interpellé... C'est bien dans vendor que tu as mis ta librairie, pas dans src hein ?

        • Partager sur Facebook
        • Partager sur Twitter
        Entraidons-nous sur un site inachevé, c'est tellement mieux ! | JSDZ@Toulouse
          3 juillet 2013 à 15:37:10

          oui en effet, je l'ai placé à la racine du vendor, mais je commence à perdre patience car je sais pas d'ou vient le probleme, je ne peu faire aucun test, je fais a l'aveugle et c'est extremement fatiguant. Je me dis que c'est peu etre la déclaration de de mon service dans service.yml qui n'est pas bon...
          • Partager sur Facebook
          • Partager sur Twitter
            3 juillet 2013 à 15:42:20

            En namespace, essaye de ne mettre que Html2Pdf pour voir, dans ton fichier Html2Pdf.php, dans ton composer.json et dans ton services.yml.

            Refais un composer.phar update.

            • Partager sur Facebook
            • Partager sur Twitter
            Entraidons-nous sur un site inachevé, c'est tellement mieux ! | JSDZ@Toulouse
              3 juillet 2013 à 15:53:34

              ligne dans composer.json

              "Html2Pdf": "vendor/neo10Complement/lib/Html2Pdf",
              celle générer dans namespace:
              'Html2Pdf' => array($vendorDir . '/neo10Complement/lib/Html2Pdf'),
              Et les lignes dans service (car je ne vois pas ce que tu veux dire, j'ai testé une à une bien évidemment)
              Html2Pdf:
                      class: neo10Complement\Html2Pdf\Html2Pdf
              
              Html2Pdf:
                      class: neo10Complement\Html2Pdf
              
              Html2Pdf:
                      class: Html2Pdf\Html2Pdf

              quel que soit la ligne dans service que j'ai mis précédemment, j'ai ce message d'erreur que tu as eu toi aussi:

              Error: Class 'neo10Complement\Html2pdf' not found in C:\wamp\www\neo10\app\cache\dev\appDevDebugProjectContainer.php line 1046



              edit: je tiens à préciser que j'ai vidé le cache...

              -
              Edité par dlestrat 3 juillet 2013 à 16:01:05

              • Partager sur Facebook
              • Partager sur Twitter
                3 juillet 2013 à 15:59:17

                J'ai un doute, là, si vous mettez un \ devant le FQCN dans le fichier de déclaration du service, on y est ?

                -
                Edité par Ymox 3 juillet 2013 à 16:20:37

                • Partager sur Facebook
                • Partager sur Twitter
                  3 juillet 2013 à 16:05:34

                  C'est le troisième service que je te disais.

                  Tu as aussi modifié le namespace dans Html2Pdf.php ?

                  C'est quoi le FQCN Ymox ?

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Entraidons-nous sur un site inachevé, c'est tellement mieux ! | JSDZ@Toulouse
                    3 juillet 2013 à 16:07:42

                    meme question que g-rem ^^

                    et oui oui le namespace est bien "namespace Html2Pdf;"  dans la class

                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 juillet 2013 à 16:11:20

                      Et je vois que tu as aussi une librairie Article dans le même dossier. T'as pas eu de probleme avec ça ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Entraidons-nous sur un site inachevé, c'est tellement mieux ! | JSDZ@Toulouse
                        3 juillet 2013 à 16:13:53

                        A la base je voulais integrer cette librairie (Article ainsi que Panier), mais voyant que je n'y arrivait pas, jme suis dit que j'allais d'abord me faire la main sur html2pdf vue qu'il y a un exemple :D

                        edit: pour info je les ai enlever pour écarter tout risque de conflit et éliminer les erreurs potentiels pour l'instant

                        -
                        Edité par dlestrat 3 juillet 2013 à 16:15:39

                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 juillet 2013 à 16:20:02

                          FQCN = Fully Qualified Class Name, le nom complet (avec le namespace) d'une classe ;)

                          -
                          Edité par Ymox 3 juillet 2013 à 16:20:12

                          • Partager sur Facebook
                          • Partager sur Twitter
                            3 juillet 2013 à 16:34:25

                            Bon je ne pense pas avoir compris ce que tu demande au vu du msg d'erreur que je reçois avec ceci:

                            Html2Pdf:
                                    class: \neo10Complement\Html2Pdf

                            InvalidArgumentException: "'\\neo10Complement\\Html2Pdf'" is not a valid class name for the "html2pdf" service.


                            edit: Autant pour moi, c'etait le fichier class html2pdf à modifier avec comme namespace "\neo10Complement\html2pdf"

                            Est-ce bien ca? car ca ne marche pas :D

                            j'ai tjr le même msg ... (class not found...app/cache

                            -
                            Edité par dlestrat 3 juillet 2013 à 16:38:12

                            • Partager sur Facebook
                            • Partager sur Twitter
                              3 juillet 2013 à 16:45:38

                              Si je saisis bien, tu as "neo10Complement\Html2Pdf ": "…" dans ton composer.json, namespace neo10Complement\Html2Pdf dans la classe que tu as recréé, et tu tentes d'instancier neo10Complement\Html2Pdf ? Ce ne serait pas plutôt neo10Complement\Html2Pdf\Html2Pdf, en fait ?

                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 juillet 2013 à 16:54:28

                                Moi perso avec ma structure vendor/cas/lib/PhpCas

                                Si je mets un namespace cas\PhpCas, ça me sort une erreur.

                                Par contre avec juste PhpCas, ça marche nickel.

                                Essaie de mettre un nom de dossier, à la place de neo10Complement, qu'en minuscules, sans chiffres.

                                Et remets le namespace comme j'ai fais de mon côté.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Entraidons-nous sur un site inachevé, c'est tellement mieux ! | JSDZ@Toulouse
                                  3 juillet 2013 à 16:56:57

                                  Bon ca marche, je n'ai pas encore tester ta solution Ymox, je vais le faire tranquillement maintenant que j'ai une solution viable, mais voic la config que j'ai actuellement et qui marche:composer.json / service.yml

                                  "Html2Pdf": "vendor/neo10Complement/lib/Html2Pdf",
                                  Html2Pdf:
                                          class: Html2Pdf


                                  Je ne sais pas si il y a une logique (certainement que oui, mais je la comprend pas :soleil: ) car si je met dans composer.json "neo10Complement\Html2Pdf": "vendor/neo10Complement/lib/Html2Pdf" et "class: neo10Complement\Html2Pdf" dans le service, bah je retourne sur mon msg d'erreur.

                                  Mais en tout cas merci bcp à vous deux, c'est plus motivant de chercher une erreur quand on a un petit coup de pouce :D

                                  EDIT: pour revenir sur ce que tu dis g-rem, peut importe le namespace que je met, je peux mettre n'importe quoi mon code fonctionne ^^ . Les mystères de l'informatique

                                  -
                                  Edité par dlestrat 3 juillet 2013 à 16:58:45

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    3 juillet 2013 à 17:01:18

                                    Remets-moi le contenu de ton composer.json ainsi que ta déclaration de service et la classe que tu as recréée, s'il te plaît, je m'y perds un peu :ange:

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      3 juillet 2013 à 17:01:34

                                      C'est à s'arracher les cheveux cet autoload :/
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Entraidons-nous sur un site inachevé, c'est tellement mieux ! | JSDZ@Toulouse
                                        3 juillet 2013 à 17:07:42

                                        // Code dans composer.jon
                                        "Html2Pdf": "vendor/neo10Complement/lib/Html2Pdf",
                                        
                                        //code généré par composer.phar et qui se trouve dans namespace
                                        'Html2Pdf' => array($vendorDir . '/neo10Complement/lib/Html2Pdf'),
                                        //code dans service:
                                        Html2Pdf:
                                                class: Html2Pdf
                                        <?php
                                        namespace neo10Complement\Html2Pdf;
                                        require_once __DIR__ . '/src/html2pdf.class.php';
                                        
                                        class Html2Pdf extends \HTML2PDF {
                                            
                                        }
                                        
                                        ?>



                                         Et ceci marche, j'avou que je ne comprend pas pourquoi cela ne marche pas si je rajoute neo10Complement devant, peut etre que tu as raison g-rem pour ce qui est est entier et des caracteres en Maj, je fais chercher ca tranquillement maintenant  :D

                                        -
                                        Edité par dlestrat 3 juillet 2013 à 17:13:57

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          3 juillet 2013 à 17:11:33

                                          Il manque une donnée ;) Je voulais aussi le code de la classe que tu as recréé

                                          Edit

                                          Tu pourrais me dire ce que retourne get_class($this->container->get('Html2Pdf')), s'il te plaît ?

                                          Réflexion en cours, ne pas éteindre le cerveau

                                          -
                                          Edité par Ymox 3 juillet 2013 à 17:28:42

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            3 juillet 2013 à 17:32:03

                                            La ligne de commande que tu m'as passer précédemment me retourne ceci:

                                            PDF c4da3e4acb613fc17282ad7a66582b9 [1.7 TCPDF 5.0.002 (http://www.tcpdf.org) (TCPDF) / HTML2PDF - TCPDF] (PDF.js: 0.7.423)

                                            Je ne sais pas si il y a quelques chose à comprendre ^^

                                            edit:

                                            je viens de faire ton throw ... et voila ce qu'il me retourne:j'ai une erreur 500 et j'ai ce msg dans les logs

                                            CRITICAL - Uncaught PHP Exception Exception: "HTML2PDF" at C:\wamp\www\neo10\src\neo10\PublicBundle\Controller\CommandeController.php line 124

                                            Peut etre que j'ai mal compris enocre :(

                                            -
                                            Edité par dlestrat 3 juillet 2013 à 17:42:53

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              3 juillet 2013 à 17:36:05

                                              Mmm… Il faut que je m'explique.   Mets throw new \Exception(get_class($this->container->get('Html2Pdf'))) dans un de tes contrôleurs, dans une action, et va sur l'action

                                              Edit

                                              A moins que ce soit déjà un tel résultat ? Je me serais attendu à quelque chose comme neo10Complete\Html2Pdf\Html2Pdf   A part ça, la seule chose que j'ai l'impression de comprendre, c'est qu'avec "Html2Pdf": "vendor/neo10Complement/lib/Html2Pdf", on définit où se trouve le namespace Html2Pdf, même si c'est un "sous-espace" de neo10Complement.


                                              Pour y voir un peu plus clair

                                              J'ai fini par regrouper ce qui semble fonctionner :

                                              "neo10Component": "vendor/"
                                              
                                              vendor
                                              	neo10Component
                                              		PhpCas
                                              			src
                                              				CAS.php
                                              			PhpCAS.php
                                              
                                              phpcas:
                                              	class: neo10Component\PhpCas\PhpCAS
                                              

                                              "neo10Component": "vendor/neo10Component/phpcas/lib"
                                              "neo10Component\\PhpCAS": "vendor/neo10Component/phpcas/lib"
                                              
                                              vendor
                                              	neo10component
                                              		phpcas
                                              			lib
                                              				neo10Component
                                              					PhpCas
                                              						src
                                              							CAS.php
                                              						PhpCAS.php
                                              
                                              phpcas:
                                              	class: neo10Component\PhpCas\PhpCAS
                                              

                                              "PhpCas": "vendor/phpcas/lib"
                                              
                                              	phpcas
                                              		lib
                                              			PhpCas
                                              				src
                                              					CAS.php
                                              				PhpCAS.php
                                              
                                              phpcas:
                                              	class: PhpCas\PhpCAS
                                              

                                              Ne fonctionnent pas
                                              "CAS": "vendor/phpcas/lib"
                                              
                                              vendor
                                              	phpcas
                                              		lib
                                              			PhpCas
                                              				src
                                              					CAS.php
                                              				PhpCAS.php
                                              
                                              phpcas:
                                              	class: CAS
                                              
                                              Fonctionnerait si la classe dans CAS.php s'appelait CAS
                                              

                                              "CAS": "vendor/phpcas/lib"
                                              
                                              vendor
                                              	phpcas
                                              		lib
                                              			PhpCas
                                              				src
                                              					CAS.php
                                              				PhpCAS.php
                                              
                                              phpcas:
                                              	class: phpCAS
                                              
                                              Fonctionnerait si la classe CAS était dans un fichier nommé phpCAS.php
                                              

                                              Ce que je note, c'est que même si on spécifie un namespace "à deux niveaux" (neo10Component\Html2Pdf), on doit avoir les deux dossiers avec la casse correspondante dans lib. C'est moche, mais c'est apparemment la manière redondante qu'utilise Composer.

                                              -
                                              Edité par Ymox 12 février 2014 à 8:36:40

                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              [Symfony2]Inclure une bibliothèque externe(phpCAS)

                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                              • Editeur
                                              • Markdown