Salut,
Dites connaîtriez-vous un bon livre éducatif pour apprendre ou se perfectionner sur le Framework Symfony, version 4?
Si je pose cette question,
C'est parce que chez Laravel, ils possèdent ce livre-ci présent : https://laravelupandrunning.com/ ,
Qui est tout simplement une mine d'or en complément de la documentation officielle, pourtant déjà très détaillée, pour bien débuter ou se perfectionner dans ce framework. (Il m'a personnellement bien aidé, et continue de le faire).
----------
Donc voila,
Je me demandais, est-ce que chez Symfony ils ont aussi, outre les vidéos de SymfonyCasts, qui sont à jour, un livre qui explique les fondamentaux de ce framework ainsi que quelques concepts avancés?
Et en version 4 si possible,
Car la version 2 est dépréciée, et la 3 le sera très bientôt à la sortie de Symfony 5 en novembre : https://symfony.com/roadmap/5.0
Où plusieurs composants nouveaux, dont notamment le Symfony Mailer depuis la version 4.3 : https://symfony.com/doc/current/mailer.html ,viendront totalement remplacer ce qui se fait actuellement.
(Sans parler de l'autowiring qui rend obsolète certaines façons de structurer son code dans les versions inférieures au 4).
----------
Bien à vous.
Tu ne trouveras rien.
Les livres sont tous en version 3 ou 2, donc dépréciés pour un usage propre à Symfony 4.
Symfony est un excellent framework, mais il ne possède pas une communauté riche internationalement parlant, comme Laravel.
Donc tu vas devoir la plupart du temps te démerder en trifouillant dans le code source. C'est d'ailleurs ce qui rend ce framework moins populaire que Laravel.
Et d'ailleurs si tu observes bien, tu verras que depuis les dernières versions, il copie la façon de faire de Laravel : migration, l'authentification .bin/console make:auth
=> https://symfony.com/doc/4.2/security/form_login_setup.html , qui n'est qu'un semblant copier/coller de php artisan make:auth
, etc.
En soit c'est bien, ils ont enfin compris que les devs n'ont pas que ça à faire de programmer à chaque fois de A à Z une authentification, ou un envoie de mail, etc..
Ils ont commencé à tilter avec la sortie de Symfony Flex dans la version 4, mais c'était trop tard.
Et c'est précisément ce qui les a fait perdre en popularité, cette putain d'usine à gaz.
Bref..
Tu ne trouveras de livres actuellement décents capable de t'expliquer les bonnes pratiques de Symfony 4, car :
Y'a un danger là-dedans : c'est que les entreprises feignasses qui décident de conserver leurs technos vieillissantes, se voient bouder par les nouveaux devs Symfony spé version 4+, qui préféreront se tourner vers une entreprise qui utilise des technologies plus récentes.
Parce que entre la version 2, une bonne partie de la 3, et la 4, c'est le jour et la nuit..
Sans tenir compte du fait que dans le Web, tout évolue vite...
A la limite si l'anglais n'a plus aucun secret pour toi, j'te conseille ce cours sur Udemy de Piotr Jura : https://www.udemy.com/learn-symfony-4-hands-on-creating-a-real-world-application/
Il n'y a pas plus complet, et il couvre presque tous les sujets abordés. (Il devrait faire un livre sérieux )
Ok merci
Si tu sais programmer tu as juste besoin de la doc non ?
Oui c'est vrai, mais j'aime bien avoir un support papier histoire de feuilleter tranquillement sans nécessairement être devant mon pc.
C’est quoi ce ramassis de conneries ?
Non personne n’est rester figé sur la version 2 ....
je parle même pas du reste ....
Enfin bon ...
Y’as pas de livre mais la doc est suffisamment riche ...
C'est surtout toi qui est un ignare.
Analyze les offres d'emploi Symfony, tu trouveras encore en majorité des entreprises restés figés à la version 2 et 3.
Et ils commencent à peine à migrer vers la version 4.
Au pif : https://www.indeed.fr/Emplois-D%C3%A9veloppeur-PHP-Symfony
Ensuite tu fais : ctrl + f
avec pour recherche : Symfony 2, Symfony 3
Et tu feuillettes page par page.
J'ai la flemme de t'expliquer ensuite pourquoi ils préfèrent pour l'instant rester sur le 2
Ramassis de connerie qu'il me dit ce con.
Le 24 juillet 2019 à 08:38:56 20_cent_2017 a écrit :
C’est quoi ce ramassis de conneries ?Non personne n’est rester figé sur la version 2 ....
je parle même pas du reste ....Enfin bon ...
Y’as pas de livre mais la doc est suffisamment riche ...
Non il a raison. Il y a encore des entreprises sous Symfony 2.
La plupart ont la flemme de migrer pour des raisons financières.
Après si tu parles de la petite PME en région parisienne, c'est autre chose.
Le 24 juillet 2019 à 10:51:31 PianoLuffy a écrit :
Le 24 juillet 2019 à 08:38:56 20_cent_2017 a écrit :
C’est quoi ce ramassis de conneries ?Non personne n’est rester figé sur la version 2 ....
je parle même pas du reste ....Enfin bon ...
Y’as pas de livre mais la doc est suffisamment riche ...Non il a raison. Il y a encore des entreprises sous Symfony 2.
La plupart ont la flemme de migrer pour des raisons financières.Après si tu parles de la petite PME en région parisienne, c'est autre chose.
Non mais laisse il est complètement con le type.
Et quand je dis ceci :
Ils refusent ainsi volontairement de se mettre à jour, alors que le créateur lui-même les a conseillé de le faire désormais tous les 6 mois à compter de la version 4.
Je le tiens de la conférence de l'auteur de Symfony lui-même donnée en Juin 2019 : https://www.youtube.com/watch?v=yfTLx-fcJio
Mais monsieur veut faire son intéressant askip
Je vais préciser quelques points ... Avant d'insulter les gens on est pas ici pour parler des ets françaises de symfony ....
Dans un premier temps il faut revenir a la réalité économique des choses ...
Effectivement les offres sont base sur Symfony 2, y'a plusieurs raisons:
les rhs qui ne connaissent rien et que c'est cool comme nom qui ne font pas de symfony2 possiblement (j'ai eu le cas du cnes)
que c'est pour faire de la maintenance applicative, et donc ton ets n'as peut être pas le temps, ni les moyen d'upgradé
Donc tu vas devoir la plupart du temps te démerder en trifouillant dans le code source. C'est d'ailleurs ce qui rend ce framework moins populaire que Laravel.
Oui auprès des flemmards, plus je trifouille le code plus j'en apprend plus sur Symfony ...
Maintenant je fais des forms en API ...
En soit c'est bien, ils ont enfin compris que les devs n'ont pas que ça à faire de programmer à chaque fois de A à Z une authentification, ou un envoie de mail, etc..
Cela depend des besoins... et puis les commandes tous le monde peux les créer. perso, je risque de pas l'utilisé celle-ci.
Et c'est précisément ce qui les a fait perdre en popularité, cette putain d'usine à gaz.
Toujours le même arguments foireux, à traduire je maîtrise pas donc j'install tous... et puis sérieux Symfony reste quand même plus rapide qu'un vieux Wordpress mal fait ... ça les histoire de bench on peux en parler longtemps ...
Parce que entre la version 2, une bonne partie de la 3, et la 4, c'est le jour et la nuit..
EuhAlors là non pas du tous, certe y'a des changement dans la forme, mais pas dans le fond. Apres oui forcement si tes rester sur la version 2,0,1 de Symfony ça risque d'être compliqué. Mais c'est certainement pas le jour et la nuit... ça fonctionne pareille !
Le 24 juillet 2019 à 08:38:56 20_cent_2017 a écrit :
C’est quoi ce ramassis de conneries ?Non personne n’est rester figé sur la version 2 ....
je parle même pas du reste ....Enfin bon ...
Y’as pas de livre mais la doc est suffisamment riche ...
Je vois que tu fais toujours autant de remarque constructive.
Le 24 juillet 2019 à 15:52:56 Thymotep a écrit :
Le 24 juillet 2019 à 08:38:56 20_cent_2017 a écrit :
C’est quoi ce ramassis de conneries ?Non personne n’est rester figé sur la version 2 ....
je parle même pas du reste ....Enfin bon ...
Y’as pas de livre mais la doc est suffisamment riche ...Je vois que tu fais toujours autant de remarque constructive.
A priori ça passe sur d’autre forum....
C’est con cette remarque serais pertinente si je n’avais pas expliqué mon point de vue dans mon deuxième poste...
Tu as lu ?
Bon j’ai oublié que je repasserai pour expliquer le détail...
J’ai poster ça en attendant le bus sur mon smartphone.
Je n’allais pas pondre un laïus...
Si on me demande gentiment, j’ai toujours des arguments...
Mais de nos jours le débat sur internet ça n’existe pas ... c’est juste du troll.
Je vais juste répondre à deux points.
D'abord ceci :
Oui auprès des flemmards, plus je trifouille le code plus j'en apprend plus sur Symfony ...
Maintenant je fais des forms en API ...
Oh Laravel est tout aussi compliqué que Symfony..
La seule différence est que Laravel cache sa complexité en utilisant pléthore de méthode "magiques", ainsi que son système de façade.
Symfony est juste plus verbeux.
Par exemple en Symfony pour insérer des données provenant de ton fomulaire dans ta DB, il te génère une instance de ton modèle à insérer dans la DB, puis te récupère une instance de l'EntityManagerInterface, vérifie ensuite si le form est valide et soumis, l'insert et enfin te redirige.
Ce qui donne un truc du style :
$article = new Article();
// Récupération des données du formulaire
// Vérification si formulaire valide et soumis
$em->persist($article);
$em->flush();
// Redirection
Laravel peut très bien te faire un truc similaire, si tu lis des livres à ce sujet, ou feuillettes juste la documentation.
Mais il préféra une solution similaire à ceci :
public function store(ArticleRequest $articleRequest)
{
// Récupération des données + validations
$validatedData = $articleRequest->validated();
// Upload d'une image si besoin
$validatedData['mon_image'] = $articleRequest->image->store('article');
// Insertion
$article= Article::create($validatedData);
// Redirection
return redirect()->route('articles.show', $article->id);
}
Terminé .
La validation du formulaire passe par un FormRequest, qui ensuite récupère tous les champs et vérifie qu'ils sont valides.
Après quoi,il passe par son système de façade, qui, si tu t'y intéresses, tu verras en fait, qu'il ne s'agit pas de méthodes statiques, mais bien de classes particulières.
Et que pour celle-ci, ::create, il te fait implicitement, à la fois un persist(), puis un flush.
Si tu désires juste persister sans flusher, tu peux remplacer la façade ::create() par ::make()
Tu remarqueras encore qu'il passe par une méthode magique pour l'image, store() :
$validatedData['mon_image'] = $postRequest->image->store('article');
Qui correspond en vérité à ceci :
Storage::disk('public')->put('article', $file)
Où, il ne fait que te créer un dossier, article, s'il n'existe pas déjà, dans ton dossier publique, à l'intérieur duquel, il vient placer ton image.
Mais ça tu ne l'apprends qu'en allant fouiller dans le code source, ou des livres. Voir même en suivant des vidéos avec des développeurs très pédagogues et avancés sur ce framework.
L'avantage des livres, et des vidéos éducatifs, est que l'auteur te montre les secrets enfouis du framework, qu'il a découvert, et te les explique, afin que tu ne puisses pas perdre ton temps inutilement à chercher ce qu'il a déjà trouvé.
Et c'est précisement là où Laravel est plus populaire que Symfony. Tu comprends maintenant?
-----
Et enfin ceci
Toujours le même arguments foireux, à traduire je maîtrise pas donc j'install tous... et puis sérieux Symfony reste quand même plus rapide qu'un vieux Wordpress mal fait ... ça les histoire de bench on peux en parler longtemps ...
Là dessus je suis d'accord avec toi.
Trop d'automatisme peut nuire à l'apprentissage.
Si tu savais d'ailleurs à ce propos qu'apparemment, selon le créateur de Symfony, Fabien Potencier, la version 5 sera encore plus feignéante que la précédente.
C’est con cette remarque serais pertinente si je n’avais pas expliqué mon point de vue dans mon deuxième poste...
Elle n'est pertinente qu'en partie.
Bref..
C'est quoi un ETS?
Le 24 juillet 2019 à 17:01:35 20_cent_2017 a écrit :
Le 24 juillet 2019 à 15:52:56 Thymotep a écrit :
Le 24 juillet 2019 à 08:38:56 20_cent_2017 a écrit :
C’est quoi ce ramassis de conneries ?Non personne n’est rester figé sur la version 2 ....
je parle même pas du reste ....Enfin bon ...
Y’as pas de livre mais la doc est suffisamment riche ...Je vois que tu fais toujours autant de remarque constructive.
A priori ça passe sur d’autre forum....
C’est con cette remarque serais pertinente si je n’avais pas expliqué mon point de vue dans mon deuxième poste...
Tu as lu ?
Bon j’ai oublié que je repasserai pour expliquer le détail...
J’ai poster ça en attendant le bus sur mon smartphone.
Je n’allais pas pondre un laïus...Si on me demande gentiment, j’ai toujours des arguments...
Mais de nos jours le débat sur internet ça n’existe pas ... c’est juste du troll.
Justement, ça tombe bien que tu parles des autres forums, parce que ce n'est pas ce que j'ai lu du débat entre modérateurs à ton sujet. En vrai, si tu es si bon développeur, que viens-tu faire ici ? Va voir dans d'autres communautés de développeur, j'imagine qu'ils réagiront de la même façon. Tu commences toujours pas sortir n'importe quoi, et ensuite tu apportes des arguments (légitime ou non d'ailleurs).
Clairement j'aimerai pas te connaitre professionnellement, ça doit être un enfer pour tes collègues si tu te comportes de la même façon que sur les forums de JVC.
PS : Oui, j'ai lu avant de te répondre.
Le 24 juillet 2019 à 18:26:06 Scorpionnocrag a écrit :
C'est quoi un ETS?
Une entreprise.
@Cryptography : j'ai clairement adoré ta réponse concernant Laravel. Je n'ai jamais eu l'occasion d'en faire jusqu'à présent (uniquement un peu de Symfony 3 et 4) et ton commentaire m'a donné envie de m'y mettre. Si je peux réaliser la même chose que sur Symfony plus rapidement je prends. Surtout qu'il y a énormément d'outils dans la suite Laravel que je suis déjà un peu de loin comme Echo ou Horizon.
Le 24 juillet 2019 à 17:53:05 Cryptography a écrit :
Je vais juste répondre à deux points.D'abord ceci :
Oui auprès des flemmards, plus je trifouille le code plus j'en apprend plus sur Symfony ...
Maintenant je fais des forms en API ...
Oh Laravel est tout aussi compliqué que Symfony..
La seule différence est que Laravel cache sa complexité en utilisant pléthore de méthode "magiques", ainsi que son système de façade.
Symfony est juste plus verbeux.
Par exemple en Symfony pour insérer des données provenant de ton fomulaire dans ta DB, il te génère une instance de ton modèle à insérer dans la DB, puis te récupère une instance de l'EntityManagerInterface, vérifie ensuite si le form est valide et soumis, l'insert et enfin te redirige.
Ce qui donne un truc du style :
$article = new Article(); // Récupération des données du formulaire // Vérification si formulaire valide et soumis $em->persist($article); $em->flush(); // Redirection
Laravel peut très bien te faire un truc similaire, si tu lis des livres à ce sujet, ou feuillettes juste la documentation.
Mais il préféra une solution similaire à ceci :
public function store(ArticleRequest $articleRequest) { // Récupération des données + validations $validatedData = $articleRequest->validated(); // Upload d'une image si besoin $validatedData['mon_image'] = $articleRequest->image->store('article'); // Insertion $article= Article::create($validatedData); // Redirection return redirect()->route('articles.show', $article->id); }
Terminé .
La validation du formulaire passe par un FormRequest, qui ensuite récupère tous les champs et vérifie qu'ils sont valides.
Après quoi,il passe par son système de façade, qui, si tu t'y intéresses, tu verras en fait, qu'il ne s'agit pas de méthodes statiques, mais bien de classes particulières.
Et que pour celle-ci, ::create, il te fait implicitement, à la fois un persist(), puis un flush.
Si tu désires juste persister sans flusher, tu peux remplacer la façade ::create() par ::make()
Tu remarqueras encore qu'il passe par une méthode magique pour l'image, store() :
$validatedData['mon_image'] = $postRequest->image->store('article');
Qui correspond en vérité à ceci :
Storage::disk('public')->put('article', $file)
Où, il ne fait que te créer un dossier, article, s'il n'existe pas déjà, dans ton dossier publique, à l'intérieur duquel, il vient placer ton image.
Mais ça tu ne l'apprends qu'en allant fouiller dans le code source, ou des livres. Voir même en suivant des vidéos avec des développeurs très pédagogues et avancés sur ce framework.
L'avantage des livres, et des vidéos éducatifs, est que l'auteur te montre les secrets enfouis du framework, qu'il a découvert, et te les explique, afin que tu ne puisses pas perdre ton temps inutilement à chercher ce qu'il a déjà trouvé.
Et c'est précisement là où Laravel est plus populaire que Symfony. Tu comprends maintenant?
-----
Et enfin ceci
Toujours le même arguments foireux, à traduire je maîtrise pas donc j'install tous... et puis sérieux Symfony reste quand même plus rapide qu'un vieux Wordpress mal fait ... ça les histoire de bench on peux en parler longtemps ...
Là dessus je suis d'accord avec toi.
Trop d'automatisme peut nuire à l'apprentissage.
Si tu savais d'ailleurs à ce propos qu'apparemment, selon le créateur de Symfony, Fabien Potencier, la version 5 sera encore plus feignéante que la précédente.
C’est con cette remarque serais pertinente si je n’avais pas expliqué mon point de vue dans mon deuxième poste...
Elle n'est pertinente qu'en partie.
Bref..
tous cela correspond à la préférence d'un dev...
Apres oui j'ai pas forcement raison, c'est un point de vue pas une vérité issue de mon expérience ...
Justement, ça tombe bien que tu parles des autres forums, parce que ce n'est pas ce que j'ai lu du débat entre modérateurs à ton sujet. En vrai, si tu es si bon développeur, que viens-tu faire ici ? Va voir dans d'autres communautés de développeur, j'imagine qu'ils réagiront de la même façon. Tu commences toujours pas sortir n'importe quoi, et ensuite tu apportes des arguments (légitime ou non d'ailleurs).
Clairement j'aimerai pas te connaitre professionnellement, ça doit être un enfer pour tes collègues si tu te comportes de la même façon que sur les forums de JVC.
Imagine que ce soit le contraire plutôt ? Je suis pas un emmerdeur, c'est plutôt le contraire ...
Je pense que si tu voyais la moutier de ce que je vois passer de temps en temps, tu comprendrais (je vous ferais l'étude de cas de prestashop ;) c'est cocasse )...
Je pense que vous prenez les chose trop à cœur enfaîte.... c'est pas bon pour vous !
Surtout que le second dégrée à l'écrit ça passe pas trop
C'est qu'un forum.Mais le monde de l'internet est très négatif, agressif... je participe certainement .
La c'est du pur HS comme le démontage en règle de Symfony... Qui ne réponds pas à la question ...
On peux dire ce qu'on sur ma pomme, perso je connais pas Laravel, et je n'ai jamais jugée laravel.
Ce que je ferais surement jamais ...
Le 24 juillet 2019 à 20:30:24 TidoDaWiseOlMan a écrit :
Le 24 juillet 2019 à 18:26:06 Scorpionnocrag a écrit :
C'est quoi un ETS?Une entreprise.
@Cryptography : j'ai clairement adoré ta réponse concernant Laravel. Je n'ai jamais eu l'occasion d'en faire jusqu'à présent (uniquement un peu de Symfony 3 et 4) et ton commentaire m'a donné envie de m'y mettre. Si je peux réaliser la même chose que sur Symfony plus rapidement je prends. Surtout qu'il y a énormément d'outils dans la suite Laravel que je suis déjà un peu de loin comme Echo ou Horizon.
Salut !
Ah Laravel, je pourrais en faire ma femme
Plus sérieusement,
De base je suis un développeur Symfoy 3, mais je me suis m'y à m'intéresser à Laravel depuis 2016, alors qu'il n'était encore qu'en version 5.3.
Ce qui m'a séduit dans ce Framework, c'est sa simplicité d'utilisation, et la rapidité de déploiement d'une application lorsqu'on est à l'aise dans ce framework.
Laravel a vraiment cet avantage d'être user-friendly puisqu'il part de base avec pas mal de packages :
.
Disons que tu as 2 tables : utilisateurs | articles, et que ton client souhaite que chacun des utilisateurs, aient un avatar, et que chaque article,aient une image descriptive.
.
Généralement ce que l'on fait, c'est simplement d'ajouter un champ à chacune des tables respectives, et le tour est joué.
Et bien Laravel voit les choses autrement :
$table->morphs('imageable');
Ce terminaison, imageable, est une convention Laravel pour le polymorphisme.
Cette méthode morphs(), viendra préfixer une terminaison à ce nom, imageable, auquel, il ajoutera un deuxième champ automatique, qu'il préfixera aussi :
imageable_id
imageable_type
Avec pour code source :
/**
* Add the proper columns for a polymorphic table.
*
* @param string $name
* @param string|null $indexName
* @return void
*/
public function morphs($name, $indexName = null)
{
$this->string("{$name}_type");
$this->unsignedBigInteger("{$name}_id");
$this->index(["{$name}_type", "{$name}_id"], $indexName);
}
Il reste ensuite à définir le polymorphisme sur le modèle mère, Image :
public function imageable()
{
return $this->morphTo();
}
Et enfin sur les modèles filles : Article et Utilisateur :
public function image()
{
/**
* Le deuxième paramètre fait référence à la méthode du polymorphisme pour l'image.
* (Cf. Juste au-dessus).
*/
return $this->morphOne(Image::class, 'imageable');
}
(On peut s'épargner une répétition en définissant un trait dans lequel on viendra placer cette dernière méthode, et alors on aura qu'à l'appeler dans les modèles filles).
Une fois fait, il ne reste plus qu'à définir le controller, et à alimenter la vue et le tour est joué.
----------
Ce qui va se produire en base de donnée à l'insertion d'une image d'avatar ou d'article, est ceci :
La table Image, à l'emplacement :
Et pour s'assurer qu'il s'agit bien d'une image destinée au modèle Utilisateur ou celui de l'Article, il viendra le renseigner au champ Imageable_type comme ceci :
Là c'était pour la relation one-one.
Laravel propose aussi le polymorphisme sur les relations OneToMany, et ManyToMany.
Ce truc prend moins de 5 minutes lorqu'on est à l'aise.
Bonne chance pour le faire sur Symfony sans être extrêmement verbeux.
-----
Et c'est un de ces nombreux packages !!
Il part de base aussi avec :
Tu peux même y ajouter une debugbar admin à la Symfony : https://github.com/barryvdh/laravel-debugbar
Ou même le service pattern repository : https://github.com/okaybueno/laravel-repositories
Bref. Laravel c'est vraiment un framework qui rend heureux.
Apprends-le vdd, tu ne seras pas déçu
Le 24 juillet 2019 à 01:33:33 ChoisiUnPseudo a écrit :
Oui c'est vrai, mais j'aime bien avoir un support papier histoire de feuilleter tranquillement sans nécessairement être devant mon pc.
Tu pourrais avoir une tablette si tu aimes lire des docs sur ton canapé, ça éviterais d'avoir à imprimer un tas de trucs, on peu trouver des tablettes Android correctes pour presque rien. En informatique, souvent tout ce qui est livre papier c'est déjà périmé quand ça sort