Bonjour à tous,
Je suis en train d'étudier Symfony 2. Ayant déjà les base de la version 1, je me suis vite rendu compte que malheureusement, pas grand chose allait me servir.
J'ai aussi des bonnes notions objet d'application, Java, C#, ORM, donc le framework en lui même me fait pas trop peur, j'aimerai être sûr de cerner la logique de celui-ci. Même si à cette question, j'entends beaucoup la réponse "c'est à toi de voir, suit ta propre logique", je trouve que c'est quand même oublié que Symfony 2 à été construit pour le web, pour créer des sites, et qu'avant d'établir sa propre logique, celle du framework doit être déjà bien digérée.
Donc je me pose des questions basique. Je vais prendre un exemple, un site qui va permettre au gens de s'inscrire/se connecter, poster des photos, et les commenter.
Je me dis qu'il y a trois éléments de base dans mon site. L'utilisateur, les photos, et les commentaire.
L'utilisateur et les commentaire ont déjà leur bundle, FOSUserBundle et divers bundle qui permettent de gérer des commentaires, donc à moi de faire mon choix.
Pour les photos, étant un élément important du site, je me dis que je vais créer un bundle qui permettra de les gérer, de les traiter, les afficher à l'aide de plusieurs galeries, etc...
Déjà première question, est-ce que je peux créer mon site avec ces trois bundles?
Si je pars avec cette idée, une fois mes bundle créer (dont deux héritent de bundle déjà existant qui eux seront installés dans le vendor du projet symfony2), je crée mes entités, dans chacun de mes bundles.
Je lie mes bundles grâce aux propriétés communes des entités avec les annotations.
Par exemple, les entités photos vont avoir comme propriété leur url, leur tailles,etc... Mais aussi une propriété Utilisateur du bundle Utilisateur. Pareil pour l'entité commentaire, qui en plus de ses propriétés, va avoir une propriété photo pour savoir à quelle photo s'adresse les commentaires, et aussi une propriété Utilisateur, pour savoir qui post.
Donc en gérant mes propriétés comme celle ci, je devrais une fois ma BDD générée, me retrouver avec un schéma classique de tables, avec leur dépendances.
Mais ensuite, comment se passe le développement?
Pour un simple affichage de la home page avec formulaire d'inscription, comment je suis censé m'organiser, quel bundle va être centrale par rapport aux autres?
Au finale je me retrouve avec trois parties bien précises, mais pas de bundle "centrale".
Donc là je me dis que j'ai qu'a faire un bundle "SiteBundle". Celui-ci sera centrale, donc je pourrai afficher mes pages, définir des routes, créer mon layout et importé des templates des autres bundles. Au niveau des entités par contre, je sais plus quoi faire... Je peux créer mes controllers dans celui-ci, recevoir les requêtes de mon site, créer et récupérer mes entités, donc logiquement je me dis, pourquoi pas.
A condition que j'arrive à lié ce bundle avec les autres, pour pouvoir communiquer avec eux.
Mais honnêtement, avec les essaies que j'ai fait et tout ce que j'ai lu, j'ai du mal à croire que c'est une bonne solution, qui m'apportera plus de facilité que la version 1.4 au final.
Donc du coup je me dis que je loupe quelque chose. Que je passe à côté de la philosophie de Symfony2. Parcequ'au final ce qui me dérange, c'est principalement le fait que rien n'a l'air d'être centraliser avec les bundles.
Donc voilà mon gros problèmes vient du fait qu'aucun exemple concret, un tuto par exemple, explique ce qu'il faut faire avec Symfony2. J'aimerai bien avoir le temps de me lancer dedans et de tester plein de possibilité, mais j'ai malheureusement pas le temps, et en plus Symfony2 à l'air d'être suffisamment complexe et profond pour ne pas déjà galérer à comprendre le principe de base.
Je me rend compte que je pose même pas de question au finale
Si quelqu'un veut partager sa vision, m'expliquer là ou je foire, là ou je ne doit pas penser comme ça, débattre de ses difficultés ou de ses idées, ça serait cool![]()
Partager