Le développement web implique souvent de jongler entre plusieurs technologies, et quand on n’est pas un spécialiste du front-end (bibi), la mise en page peut vite devenir un casse-tête. C’est là que TailwindCSS peut être un allié de choix.
Symfony 7 apporte son lot d'améliorations et de nouveautés, et pour en tirer pleinement parti, il est essentiel de disposer d’un environnement de développement à la fois flexible et reproductible.C’est là que Docker entre en jeu. En encapsulant notre application et ses dépendances dans des conteneurs, Docker nous permet de nous affranchir des problèmes liés aux configurations système et de garantir un déploiement plus fluide, que ce soit en local ou en production. Dans cet article, nous verrons comment mettre en place un environnement Symfony 7 avec Docker, en définissant un docker-compose.yaml.
Le dernier post à ce sujet date un peu et montrait comment customiser EasyAdmin mais avec webpack encore (https://www.citizenz.info/article/customiser-easyadmin). Voici la meme chose... mais avec AssetMapper. En fait, tout reste quasi identique sauf évidemment la config spécifique pour AssetMapper.
Depuis la version 4.14.0 d'EasyAdmin (https://github.com/EasyCorp/EasyAdminBundle/releases/tag/v4.14.0) est arrivé le support pour les "pretty URL". Désormais il est possible de remplacer les URL "à rallonge" par une URL du type /admin/post/4/edit
Voici une manière simple d'installer Bootstrap (5.3) et AwesomeFonts dans un projet Symfony 7.
Lorsque vous créer un formulaire de connexion sous Symfony, l'utilisateur connecté est traditionnellement redirigé vers la page d'accueil. Mais il est possible et très simple de changer la page "d'atterrissage" de l'utilisateur.
Depuis l'arrivée de Symfony 7, la création de l'authentification a chnagé. Fini le traditionnel make-auth qui est devenu deprecated. Bienvenu à make-security et ses options...
Imaginez que vous ayez un nouveau site à mettre en production sur un serveur. Votre site a été développé avec PHP version 8.2 mais le serveur d'hébergement affiche une version de PHP en 7.4.33 Vous savez que PHP 8.2 a été installé sur le serveur d'hébergement mais que hélas, ce n'est pas la version par défaut. Comment dire à Symfony et Composer d'utiliser quand même la version 8.2 de PHP ?
CKEditor v4 n'est plus maintenu depuis juin 2023 (CKEditor 4 - End of Life (EOL) in June 2023). Sous Symfony, avec le bundle friends-of-symfony/FOSCKEditorBundle vous riquez d'avoir un soucis dans votre backoffice (Easyadmin par exemple) : les parties copnsacrées à CKEditor ont disparu, laissant la place à un simple TextArea tout basique... Que faire ? Downgrader !
Voici une méthode simple pour installer Google ReCatpcha dans votre projet Symfony. Partons de l'idée que vous avez un formulaire de contact que vous souhaitez "protéger" avec Google ReCapctha, afin d'ajouter un bouton anti spam et une case à cocher "Je ne suis pas un robot". Afin d'afficher ce bouton Google ReCaptcha, il vous faudra premièrement créer un projet Google Recapctha dans votre interface Google...
Imaginez que vous ayez à rediriger une URL vers une ancre dans votre vue pour afficher, par exemple, le texte de succès de l'envoi d'un mail ou d'un formulaire... Quelle syntaxe employer dans votre controller ?
Imaginons un projet sous Symfony 5 ou 6 avec EasyAdmin (3 ou 4) installé et une entité User possédant plusieurs champs : id, email, roles, password, prenom, nom, avatar, isActive, etc. Les utilisateurs peuvent se connecter, possèdent des "droits" (rôles) et sont autorisés à faire certaines tâches. Une fois connectés, les utilisateurs ayant un role admin, par exemple, peuvent naviguer jusqu'à la page d'accueil du Dashboard (EasyAdmin) et pourquoi pas aller changer leur email, avatar, etc. Mais qu'en est-il du mot de passe ?
Pour rappel, Easyadmin permet de créer facilement et rapidement un "backoffice" ou "Dashboard" pour Symfony. Mais saviez-vous qu'il est possible de customiser le "look" d'Easyadmin afin de changer la couleur du background, la couleur des polices, ajouter un logo, etc. Voici donc quelques "trucs" pour customiser Easadmin. (Je pars évidemment du principe que Easyadmin est installé.)
J'ai dernièrement voulu mettre en place des pages d'erreur personnalisées sous Symfony 6.1. En suivant la documentation de Symfony (https://symfony.com/doc/current/controller/error_pages.html), je n'ai jamais réussi à faire fronctionner les pages d'erreur. J'avais constamment une page blanche pour une erreur 404 par exemple... J'ai alors regardé s'il était possible de se passer du traditionnel templates/bundles/TwigBundle/Exception...
Lors de la suppression d'un utilisateur sous Symfony, on peut se retrouver avec une erreur assez gênante pour l'utilisateur. Même si le user est bien supprimé de la BDD, le front affiche une jolie erreur comme suit : You cannot refresh a user from the EntityUserProvider that does not contain an identifier. The user object has to be serialized with its own identifier mapped by Doctrine. Il existe une solution en supprimant le security.token lors de la suppression. Et c'est meme compatible avec les flash messages...
Si vous utilisez PHP 8+, c'est Symfony 6 qui sera instgallé par défault. Vous constaterez aussi un petit changement (par rapport Symfony 5 et précédents) : l'utilisation des "attributs" à la place des "annotations", dans les routes des controller...
Imaginons que nous ayons un ou plusieurs utilisateurs sur notre site dont le compte a été passé à "Inactif". Comment empêcher cet utilisateur (user) de se connecter ?
On va ici découvrir comment ajouter Select2 à Symfony en utilisant Webpack-Encore. On installera également Bootstrap 5. Nous verrons également comment éventuellement changer de version de NodeJS à la vollée, ce qui est plutôt pratique lors de certains tests, sur certains matériels et environnements...
Docker va vous permettre de lancer facilement une instance de PhpMyAdmin. Avantages ? Votre PhpMyadmin sera à jour, lancé sur un port différent et vous permettra "d'isoler" votre base de données. Pas la peine d'installer MySQL, PhpMyAdmin, etc. tout est déjà prévu...
J'ai l'habitude d'utiliser VSCode pour mes projets de dev. VSCode est gratuit, possède plein de plugins super pour le développement (notamment sous Symfony). J'avais pourtant obtenu une licence opensource PHPStorm valable un an. Mais je suis revenu sous VSCode que je trouve plus "facile" à manoeuvrer. Comme dirait ma femme : "Chacun ses sales goûts !"
Comment créer une barre de recherche qui apparaitra directement dans la sidebar ou la navbar ? Il est assez simple de créer une page de recherche et d'y mettre la barre de recherche. Tout se passe dans le même fichier. Mais comment faire quand on a une barre de recherche dans la sidebar ou la navbar pour afficher les "bons résultats" sur la "bonne page" ?
J'utilise des VPS installés avec Ubuntu server 18.04. La version de PHP installée par défaut sur une 18.04 est 7.2. Mais j'avais besoin d'utiliser une version 7.4 pour mes projets Symfony...
Les bases (installer Composer, Symfony CLI, fichier .env.local, premier projet, création de la base de données avec Doctrine, VSCode, ...)
Git est le sytème de gestion de version décentralisé open source qui facilite les activités GitHub sur votre ordinateur. Cet aide-mémoire permet un accès rapide aux instructions des commandes Git les plus utilisées...
Quand on débute sur Symfony, c'est souvent un peu compliqué de s'y retrouver tout seul. Mais une fois que l'on a compris la "philosophie" du framework et que l'on connait certaines commandes bien utiles, on se rend compte d'une chose : on ne plus s'en passer et en se dit : "Mais comment j'ai pu galérer à mettre en place telle ou telle partie de projet... alors que Symfony me fait ça les doigts dans le nez, en 2 temps 3 mouvements ?!!"
J'ai souhaité, à partir d'une liste de "codes structure", afficher le nom correspondant "automatiquement", de cette façon : 218521 --> Grand salle 2... Mais comment faire avec deux <select> qui puisent qui plus est leurs infos dans la même table ?
Sous Symfony le fichier .env est important. Il contient certaines informations cruciales pour le bon fonctionnement de votre projet. Notamment, on y retrouve les informations de connexion à la base de données MySQL, ... ou SQLite, etc.