Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/02/2011, 03h06   #1
Invité de passage
 
Inscription : avril 2010
Messages : 35
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 35
Points : 4
Points : 4
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 :

Citation:
- 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 :
Citation:
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 !
.Spirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 14h52   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
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...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h10   #3
Membre éprouvé
 
Cédric L.
Inscription : février 2009
Messages : 315
Détails du profil
Informations personnelles :
Nom : Cédric L.
Localisation : Belgique

Informations forums :
Inscription : février 2009
Messages : 315
Points : 436
Points : 436
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.
RapotOR est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/02/2011, 03h09   #4
Invité de passage
 
Inscription : avril 2010
Messages : 35
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 35
Points : 4
Points : 4
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.
.Spirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 08h09   #5
Membre éprouvé
 
Cédric L.
Inscription : février 2009
Messages : 315
Détails du profil
Informations personnelles :
Nom : Cédric L.
Localisation : Belgique

Informations forums :
Inscription : février 2009
Messages : 315
Points : 436
Points : 436
Oui pour un projet a court terme, il y a pas photo!
Sage décision!
RapotOR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 17h00   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Pas de problèmes.

Visite (heu travail) bien !
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 02h52   #7
Invité de passage
 
Inscription : avril 2010
Messages : 35
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 35
Points : 4
Points : 4
Merci !
.Spirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h33.


 
 
 
 
Partenaires

Hébergement Web