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 :

démarrage symfony et fosuserbundle [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut démarrage symfony et fosuserbundle
    Bonjour,
    je début en symfony
    je voudrais utiliser fosuserbundle
    j'ai installé symfony 2
    installé fosuserbundle dans bundle
    mis à jour autoload et appkernel

    J'utilise mysql et doctrine.

    Maintenant je ne sais pas / plus quoi faire

    Merci de votre aide pour me guider dans cette première utilisation

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Tu as terminé l'étape 1.
    Etape 2: Lire la doc.
    Hésite pas à venir poser des questions si tu ne comprends pas certains points, mais là tu demandes de te rédiger un tutorial sur le bundle...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut
    Je suis à l'étape 4 mais là je vois pas comment faire d'où ma question

    https://github.com/FriendsOfSymfony/...s/doc/index.md

    Step 4: Create your User class

    j'essaye par doctrine ORM et c'est surtout à ce point que je bloque car je ne sais pas ce que je dois faire.

    si je dois passer dans app/console, si je dois faire cela en manuel ..

    ce point me semble clair pour quelqu'un qui maitrise symfony mais pas lorsque l'on démarre

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Step 4: Create your User class

    Tu dois creer ton entité User dans ton bundle...
    En gros, tu copies le code qui est proposé et cela fonctionnera!
    Ensuite, tu generes ton schema avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php app/console doctrine:schema:update --force
    et tu verifies que dans ta base, tu as bien une table avec plein de champs!

    Ensuite... tu continues les etapes!
    Un petit si la réponse convient. Merci.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut
    J'ai effectué la commande mais j'ai cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     [Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
     
     The child node "db_driver" at path "fos_user" must be configured.
    J'ai créé le fichier dans User.php et j'ai aussi créé le répertoire Entity dans mon bundle créé à l'occasion

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut
    faut il remplacer ou ajouter le fichier security.yml

    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
    21
    22
    # app/config/security.yml
    security:
    providers:
    fos_userbundle:
    id: fos_user.user_manager
    encoders:
    "FOS\UserBundle\Model\UserInterface": sha512
    firewalls:
    main:
    pattern: ^/
    form_login:
    provider: fos_userbundle
    logout: true
    anonymous: true
    access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }
    role_hierarchy:
    ROLE_ADMIN: ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN
    pour la config fos_user j'ai vu que cela était dans l'étape 6 mais il reste l'étape 5 où je ne sais pas si je dois ajouter, remplacer ...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut
    Voici la situation complète et le message d'erreur se trouve tout à la fin

    Installation de Wamp ==> OK
    Installation du package ==> Symfony2 dans d:\wamp\www\Symfony ==> OK

    Génération d'un bundle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    php app/console generate:bundle
     
    astro/TestBundle
    ajout dans app/AppKernel.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                new astro\TestBundle\astroTestBundle(),
                new FOS\UserBundle\FOSUserBundle(),
    ajout dans app/autoload.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        'FOS'              => __DIR__.'/../vendor/bundles',
    dans app/config/routing.yml
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    astroTestBundle:
        resource: "@astroTestBundle/Controller/"
        type:     annotation
        prefix:   /
     
    # Internal routing configuration to handle ESI
    #_internal:
    #   resource: "@FrameworkBundle/Resources/config/routing/internal.xml"
    #   prefix:   /_internal
     
     
    fos_user_security:
        resource: "@FOSUserBundle/Resources/config/routing/security.xml"
     
    fos_user_profile:
        resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
        prefix: /profile
     
    fos_user_register:
        resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
        prefix: /register
     
    fos_user_resetting:
        resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
        prefix: /resetting
     
    fos_user_change_password:
        resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
        prefix: /profile
    dans app/config/config.yml
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    imports:
        - { resource: parameters.ini }
        - { resource: security.yml }
     
    framework:
        #esi:             ~
        #translator:      { fallback: %locale% }
        secret:          %secret%
        charset:         UTF-8
        router:          { resource: "%kernel.root_dir%/config/routing.yml" }
        form:            true
        csrf_protection: true
        validation:      { enable_annotations: true }
        templating:      { engines: ['twig'] } #assets_version: SomeVersionScheme
        session:
            default_locale: %locale%
            auto_start:     true
     
    # Twig Configuration
    twig:
        debug:            %kernel.debug%
        strict_variables: %kernel.debug%
     
    # Assetic Configuration
    assetic:
        debug:          %kernel.debug%
        use_controller: false
        # java: /usr/bin/java
        filters:
            cssrewrite: ~
            # closure:
            #     jar: %kernel.root_dir%/java/compiler.jar
            # yui_css:
            #     jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
     
    # Doctrine Configuration
    doctrine:
        dbal:
            driver:   %database_driver%
            host:     %database_host%
            port:     %database_port%
            dbname:   %database_name%
            user:     %database_user%
            password: %database_password%
            charset:  UTF8
     
        orm:
            auto_generate_proxy_classes: %kernel.debug%
            auto_mapping: true
     
    # Swiftmailer Configuration
    swiftmailer:
        transport: %mailer_transport%
        host:      %mailer_host%
        username:  %mailer_user%
        password:  %mailer_password%
     
    jms_security_extra:
        secure_controllers:  true
        secure_all_services: false
     
    fos_user:
        db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
        firewall_name: main
        user_class: astro\TestBundle\Entity\User
    dans app/config/security.yml
    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
    21
    22
    23
    24
    25
    26
     
    security:
        providers:
            fos_userbundle:
                id: fos_user.user_manager
     
    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512
     
    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
            logout: true
            anonymous: true
     
    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }
     
    role_hierarchy:
        ROLE_ADMIN: ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN
    dans app/config/parameters.ini
    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
     
    ; These parameters can be imported into other config files
    ; by enclosing the key with % (like %database_user%)
    ; Comments start with ';', as in php.ini
    [parameters]
        database_driver   = pdo_mysql
        database_host     = localhost
        database_port     =
        database_name     = symfony
        database_user     = root
        database_password =
     
        mailer_transport  = smtp
        mailer_host       = localhost
        mailer_user       =
        mailer_password   =
     
        locale            = fr
     
        secret            = ThisTokenIsNotSoSecretChangeIt
    dans src/astro/TestBundle/Entity/User.php
    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
    21
    22
    23
    24
     
    <?php
    // src/Acme/UserBundle/Entity/User.php
    namespace astro\TestBundle\Entity;
    use FOS\UserBundle\Entity\User as BaseUser;
    use Doctrine\ORM\Mapping as ORM;
    /**
    * @ORM\Entity
    * @ORM\Table(name="fos_user")
    */
    class User extends BaseUser
    {
    /**
    * @ORM\Id
    * @ORM\Column(type="integer")
    * @ORM\GeneratedValue(strategy="AUTO")
    */
    protected $id;
    public function __construct()
    {
    parent::__construct();
    // your own logic
    }
    }
    En console :
    php app/console doctrine:schema --force

    donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
      [Symfony\Component\Config\Exception\FileLoaderLoadException]
     
      Cannot import resource "D:\wamp\www\Symfony\app/config\security.yml" from "D:\
    wamp\www\Symfony\app/config\config.yml".
     
      [InvalidArgumentException]
     
      There is no extension able to load the configuration for "encoders" (in D:\wam
    p\www\Symfony\app/config\security.yml). Looked for namespace "encoders", found "
    framework", "security", "twig", "monolog", "swiftmailer", "doctrine", "assetic",
     "sensio_framework_extra", "jms_security_extra", "astro_test", "fos_user", "acme
    _demo", "web_profiler", "sensio_distribution"

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Tu es sur de ton encoders dans le app/config/security.yml ?

    Déjà moi j'en ai pas eu besoin lorsque j'ai fait ma premiere implementation de FOSUserBundle et ensuite quand je vois la doc

    http://symfony.com/doc/2.0/book/security.html

    ca me semble pas bon de mettre direct sha512

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # app/config/config.yml
    security:
        # ...
        providers:
            in_memory:
                users:
                    ryan:  { password: bb87a29949f3a1ee0559f8a57357487151281386, roles: 'ROLE_USER' }
                    admin: { password: 74913f5cd5f61ec0bcfdb775414c2fb3d161b620, roles: 'ROLE_ADMIN' }
     
        encoders:
            Symfony\Component\Security\Core\User\User:
                algorithm:   sha1
                iterations: 1
                encode_as_base64: false

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut
    Bonjour
    J'ai pris le fichier security.yml qui se trouve dans la doc fosuserbundle et j'ai écrasé celui qui était en place avec l'installation par défaut de symfony

    donc comme je débute je ne sais pas trop ce qui est bon ou pas

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    voici le mien, basé sur le tutoriel de Jerome Place sur developpez.com

    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
    21
    22
    23
    24
    security:
        providers:
            fos_userbundle:
                id: fos_user.user_manager
     
        firewalls:
            main:
                pattern:      .*
                form_login:
                    provider:       fos_userbundle
                    login_path:     /myapp/login
                    use_forward:    false
                    check_path:     /myapp/login_check
                    failure_path:   null
                    default_target_path: /myapp
                logout:
                    path:   /myapp/logout
                    target: /myapp
                anonymous:    true
        access_control:
            - { path: ^/myapp/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/myapp/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/myapp/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/myapp/gestion-utilisateur/, role: ROLE_ADMIN }

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Dans la dernière version du FOSUserBundle,le parametre encoder est nécessaire:
    https://github.com/FriendsOfSymfony/...rade_to_1_2.md

    dans app/config/security.yml
    security:
    providers:
    fos_userbundle:
    id: fos_user.user_manager

    encoders:
    "FOS\UserBundle\Model\UserInterface": sha512
    Je pense qu'il manque une indentation afin que le parametre soit security.encoders... et pas encoders... tout cours
    c'est ce qui provoquait l'erreur
    There is no extension able to load the configuration for "encoders" (in D:\wam
    p\www\Symfony\app/config\security.yml)

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Je confirme, je suis passé en 1.2 suite à ton message et mon code a planté.
    J'ai juste eu a ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    security:
        providers:
            fos_userbundle:
                id: fos_user.user_manager
        encoders:
            "FOS\UserBundle\Model\UserInterface":
                algorithm: sha512
                encode_as_base64: false
                iterations: 1
    [...]
    Et c'est revenu comme avant...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    effectivement il y avait un problème d'indentation, je ne savais pas que cela pouvait poser un problème à ce niveau.

    Ensuite j'ai lancé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php app/console doctrine:generate:entities astro
    ==> ok

    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php app/console doctrine:schema:create
    dans mysql je trouve la table fos_user

    Ensuite je me connecte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://127.0.0.1/Symfony/web/app_dev.php/register


    Merci

    je vais voir un peu ce que je peux faire maintenant avec

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

Discussions similaires

  1. [2.x] Symfony 2.1 : problème de traduction [FOSUserBundle]
    Par nonerd dans le forum Symfony
    Réponses: 2
    Dernier message: 28/08/2013, 08h57
  2. [2.x] Symfony 2 - Surcharge Usermanager FosUserbundle
    Par sledge00 dans le forum Symfony
    Réponses: 5
    Dernier message: 26/05/2013, 17h27
  3. [2.x] FOSUserBundle symfony 2.1 namespace
    Par ouioui2000 dans le forum Symfony
    Réponses: 6
    Dernier message: 02/12/2012, 08h19
  4. [2.x] [Symfony 2] FOSUserBundle register role
    Par fredhouse dans le forum Symfony
    Réponses: 0
    Dernier message: 27/06/2012, 17h09
  5. [1.x] démarrage d'un nouveau projet Symfony avec Xampp
    Par safa.nasich dans le forum Symfony
    Réponses: 2
    Dernier message: 28/06/2011, 20h13

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