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 :

[sf 2.0] Débuter depuis la sandbox [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    Par défaut [sf 2.0] Débuter depuis la sandbox
    Bonjour à tous,

    Voilà, je me lance dans le développement d'une application (assez lourde) et je compte utiliser Symphony2.
    Avant de commencer je précise que j'ai une seule expérience avec un autre framework PHP : CodeIgniter. Je le trouve très intuitif, et j'adorerais créer mon projet avec. Sauf que j'aime apprendre et comme je connais déjà "trop" bien CI, je me tourne vers Symfony2 qui, je suis sûr, une fois maîtrisé, remplira son rôle à merveille.

    Je souhaite utiliser Symfony2 car c'est... le futur, tout simplement. Vu que c'est pour de l'apprentissage (avec un projet à la clé mais au stade de développement où est arrivé Symfony2, ça ne devrait pas poser de problème).

    Donc d'une part je bataille depuis plusieurs jours pour créer un bête formulaire... j'ai enfin réussi aujourd'hui ! (ne m'applaudissez pas).
    En fait, là où CodeIgniter crée tout seul ses routes et URI en fonction du dossier dans lequel se trouve le fichier, Symfony nécessite un paramétrage (routing.yml). Bref, ça, c'est compris.

    Cependant, maintenant, je doit organiser mon projet et je veux m'y prendre dès le début pour ne pas avoir à revoir mon code par la suite et changer les routes. Voici à peu de choses près le squelette de mon projet :

    - Accueil

    - Module User
    ---- Inscription
    ---- Login
    ---- Password oublié (entrez votre adresse email...)
    ---- Réinitialisez votre password (entrez deux fois le nouveau password) <-- on accède à cette page via un token envoyé par email

    - Module Commandes
    ---- Formulaire de commande
    ---- Récapitulatif des commandes passées
    ---- Info sur les offres. Pas besoin d'être inscrit pour accéder à cette page.

    - Module Admin (par les utilisateurs ayant commandé)
    ---- administration du serveur X
    ---- administration du serveur Y
    ---- etc... en fonction du nombre de serveurs dont dispose le clients (tous types)

    - Module Admin (par "moi-même")
    ---- Récapitulatif des commandes passées
    ---- commande au détail (clic sur un lien du récapitulatif par exemple)
    ---- autres...
    Ce que je voudrais faire, c'est dans mon dossier Sensio/RentBundle/ (c'est le nom de mon bundle) créer soit un dossier par module, soit un dossier "modules" puis un dossier par module (encore mieux).
    Et je veux accéder par exemple à l'interface de login (qui se trouve dans Sension/RentBundle/User/) par l'adresse : app_dev.php/user/login
    Sauf que ça ne fonctionne pas, dans le controller, il faut une méthode du type "nomdudossierAction()"... Dans mon cas il appelle une méthode userAction() donc. Or ce n'est pas ce que je veux. Je veux pouvoir créer n'importe quelle fonction dans mon contrôleur, qui appelle n'importe quel de mes composants.

    Voilà mon fichier de routing :
    rent:
    pattern: /
    defaults: { _controller: RentBundle:Rent:index }

    login:
    pattern: /user
    defaults: { _controller: RentBundle:Rent:user }
    De même, je ne sais pas où créer mes modèles, la doc n'a pas l'air d'en parler...


    Bon je sais qu'en postant ici il n'y aura pas forcément énormément de réponses car je m'engage sur une Terre inconnue, mais si quelqu'un a au moins quelques astuces, conseils, expériences, je suis preneur.

    Merci d'avance !

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'ai déplacé dans symfony, c'est ici qu'il y a le plus de symfony deux pratiquants.

    Je pense que tu as intérêt à développer ailleurs quant dans le dossier sensio. Crée un dossier propre. Tu as intérêt à découper ton application en bundle indépendant (autant que possible) pour un application importante c'est surement l'idéal et permet, suivant le cas de n'installer qu'une partie des fonctionnalités.

    Il n'y a plus de notion de module dans symfony mais la notion de bundle est ce qui s'en rapproche le plus, même si, la plus part du temps, ce que tu aurais mis dans un module va se retrouver à plusieurs dans un bundle. Pêle mêle. D'où l’intérêt de bien découper en bundle bien séparé et le plus atomique possible (mais pas trop)(ceci va devenir un art empirique !).

    Je pense que ce que tu décris comme module correspond bien à la notion de bundle.

    J'ai cru voir passer un boulet de multiples bases de données... Je ne pense pas qu'ici personne n'aie déjà testé (RapotOR as-tu déjà testé cela ?).

    Une fois la structure générale plus appuyée, on pourra toujours regarder du côté des routes...

  3. #3
    Membre chevronné
    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
    Par défaut
    Son projet parle de multiple serveurs mais c'est le sujet (je crois).

    Mais pour repondre a la question, la connexion a plusieurs base de donnees n est pas specialement compliquée. Il faut creer un "Entity Manager" par connexion.

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    Par défaut
    Bonjour,

    Non en fait il s'agit d'administrer plusieurs instance d'un serveur sur une même machine, donc une base de données.

    Cependant, j'ai pris la solution de "facilité" : retourner à ce que je connais.
    J'ai déjà pas mal de sources prêtes (car créées lors de projets précédents) sous CodeIgniter, et je n'ai pas assez de temps et de courage (avouons le ) pour me lancer dans Symfony pour l'instant. Comprendre tous les concepts me prendrait encore assez longtemps et je souhaite avancer assez rapidement dans ce projet.

    Quand je parle du temps, en fait je suis actuellement en stage aux USA, donc je peux développer un peu le soir (bien que je fasse ça toute la journée...) mais j'ai aussi la visite des alentours et le rapport de stage à faire !

    @Michel: Je te remercie. J'avais en effet tenté de réorganiser tout ça selon tes conseils, mais à chaque fois que je bouge un fichier il me faut modifier les routes, et je passais mon temps à corriger des erreurs de classes non trouvées et autres. Cela m'a un peu découragé

    Mais ce n'est que partie remise, le prochain projet web me reconduira très certainement vers Symfony car j'ai malgré tout envie de voir ce qu'il donne, vu qu'il est très utilisé en entreprise. J'attendrai que la version 2.0 soit plus mûre et que la doc soit fixée (ce qui n'est pas le cas actuellement).

    Désolé du dérangement sur ce topic.

  5. #5
    Membre chevronné
    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
    Par défaut
    Oui pour un projet a court terme, il y a pas photo!
    Sage décision!

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Pas de problèmes.

    Visite (heu travail) bien !

  7. #7
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    Par défaut
    Merci !

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

Discussions similaires

  1. Quel logiciel (EDI) pour débuter en programmation ?
    Par mimosa69 dans le forum Débats sur le développement - Le Best Of
    Réponses: 13
    Dernier message: 17/01/2016, 16h45
  2. Débat : quelle distribution Linux choisir pour débuter ?
    Par Anonymous dans le forum Distributions
    Réponses: 227
    Dernier message: 18/02/2015, 10h09
  3. Réponses: 0
    Dernier message: 10/02/2010, 11h53
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  5. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29

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