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

Symfony PHP Discussion :

Ajout d'une librairie perso


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Par défaut Ajout d'une librairie perso
    Bonjour,

    Je tente désespéramment d'ajout dans mon projet Symfony2 une librairie que j'ai écrite.

    J'ai placé les fichiers dans vendor ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    - Pn
      - Schema
        - src
            - Schema.php
            - Attribute.php
            - etc.
    Ensuite, j'ai modifié mon fichier composer.json pour déclarer mon namespace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    "autoload": {
            "psr-0": {
                "": "src/",
                "Pn\\Schema": "vendor/Pn/Schema/src"
             }
        },
    Puis lancer la commande composer dump-autoload, qui a eu pour conséquence de générer le fichier autoload_namespaces.php avec mon namespace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    // autoload_namespaces.php generated by Composer
    $vendorDir = dirname(dirname(__FILE__));
    $baseDir = dirname($vendorDir);
    return array(    
    [...]
    'Pn\\Schema' => $vendorDir . '/Pn/Schema/src',
    [...]
    );
    Mes classes ressemblent à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    namespace Pn\Schema;
    class Schema {
    [...]
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    namespace Pn\Schema;
    class Attribute {
    [...]
    }
    Dans mon controller, je fais comme çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    use \Pn\Schema\Schema as PnSchema;
    [...]
    public function testAction() {
            $schema = new PnSchema('individu');
            return new Response(json_encode(true));
    }
    Bien entendu, comme tout ce que j'ai fait dans Symfony2 ne fonctionne jamais du premier coup même en suivant des tutos, je me tourne vers vous

    FatalErrorException: Error: Class 'Pn\Schema\Schema' not found in C:\wamp\www\pn-server\src\Pn\RestServerBundle\Controller\CriterionController.php line 66

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Bonjour,

    le namespace doit correspondre à l'arborescence de tes fichiers, le "src" ne doit pas se trouver là.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    - PnLibrary
      - Pn
        - Schema
            - Schema.php
            - Attribute.php
            - etc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    "autoload": {
            "psr-0": {
                "": "src/",
                "Pn": "vendor/PnLibrary"
             }
        },
    Compare les différents namespace Doctrine (par exemple) dans vendor/composer/autoload_namespace.php et la façon dont ces librairies sont organisés dans vendor/Doctrine pour bien comprendre le système.

Discussions similaires

  1. Ajout d'une librairie
    Par nypahe dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 22/03/2009, 00h39
  2. Réponses: 0
    Dernier message: 04/02/2009, 12h36
  3. Ajout d'une librairie .a dans un autre projet
    Par jojo67540 dans le forum Eclipse C & C++
    Réponses: 2
    Dernier message: 24/05/2008, 23h46
  4. [Visual Fortran 6.0] Ajout d'une librairie
    Par salseropom dans le forum Fortran
    Réponses: 0
    Dernier message: 17/04/2008, 11h20
  5. ajout d'une librairie
    Par salseropom dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 17/04/2008, 11h19

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