Un outil super cool pour faire des diagrammes est draw.io. Il permet de faire aussi bien des diagrammes techniques, de dev que du plan ou des schémas de bricolage. Y’en a d’autres bien sur, comme cacoo, mais l’avantage de draw.io, c’est qu’il y a une version en ligne ou en local sur notre machine.
Mais pour le besoin d’un projet de bricolage perso, j’avais besoin de séparer mon diagramme en calque, pour ne pas surcharger le schéma et pouvoir organiser mon travail, ceux qui utilisent Gimp ou ToShop savent de quoi je parle.
Les calques
Je ne vais pas refaire un topo l’a dessus, mais comme indiqué avant, c’est fort pratique. Mais dans Draw.io c’est bête, mais c’est à moitié caché. J’ai cherché dans Modifier, Vue, Organiser, mais que dalle, étrange
En faite, il faut cliquer là-dessus :
Puis sur « couche »
Ce qui va faire apparaitre la fenêtre de gestion des calques (Layer en anglais et Couches en draw.io 😂), Alors je vais me répéter ce que je dis toujours à mes élèves, ne jamais installer un logiciel en français 😩
Bon sous ce titre un peu rigolo, il y a un vrai problème que je trouve assez frustrant et surtout bloquant. En effet une fois que vous avez mis à jour vos package, plus rien ne marche et la console vous envoie un message d’insulte pas piqué des hannetons (et en rouge en plus, le salopiaud):
Unrecognized options "dir_name, namespace" under
"doctrine_migrations". Available options are "all_or_nothing",
"check_database_platform", "connection", "custom_template", "em",
"factories", "migrations", "migrations_paths", "organize_migrations",
"services", "storage".
Normalement, grâce à composer, on ne dois pas avoir de problème pour l’ajout et surtout la maintenance des packages, d’autant plus avec Symfony. Sauf que dernièrement avec la dernière mise à jour, Symfony passe de la version 5.0 à la 5.1 et surtout DoctrineMigrations passe de la 2.2 à la 3.0 et là, c’est le drame…
J’imagine que c’est un problème de changement de version qui ne doit intervenir que pour les projets existants, mais c’est fort facheux de perdre du temps bêtement comme ça. J’ai trouvé le coupable, (et qu’on lui traaannchee la têeeeeete, euh hem, je m’égare). Bon, c’est le fichier qui va contenir la configuration de doctrine migration, à savoir ./config/packages/doctrine_migration.yaml En gros dans votre version, vous devez avoir un truc du genre:
Et c’est bien ce que nous dis le message d’erreur, en gros il se prend direct dir_name comme clé, et il a rien compris, ce qu’il attend maintenant, c’est ça:
En théorie, si vous relancer un composer update ou n’importe quelles autres commandes, ça doit passer, par contre si vous voulez faire une migration, et Bim un nouveau message d’erreur:
The metadata storage is not up to date, please run sync-metadata-storage command to fix the issue
Il semblerait que ça viennent toujours de la version 3.0 de DoctrineMigration, qui as aussi changé le format des migrations ainsi que le nom de la table dans la BDD. Ok pas de problème, je lance la commande indiqué et là c’est super rigolo:
Et bah il me raffiche la même erreur, donc en faite, c’est un souci au niveau du serveur, il faut lui indiquer la bonne version du serveur de BDD à utiliser. J’avais laissé le truc de base dans le .env, mais en fait j’utilise Mariadb. Je suis passé à ça : mariadb-10.3.22, et maintenant la commande fonctionne.
En espérant que cela vous dépanne. Allez bon dev et Banzaï
Bonjour, alors mon problème du jour est que quand je veux déployer sur un hébergeur mutualisé, je n’ai parfois pas trop le choix de la version de PHP qui va tourner. Par exemple sur mon hébergement de base chez OVH, bah c’est la V. 7.3.18 MAX, or mon site symfony développé sur ma machine avec la dernière version d’Ubuntu qui est sur la version 7.4 de PHP, va se baser sur celle-ci. Je vais donc avoir un joli message comme quoi mon composer.lock ne correspond à la version du serveur.
Pour corriger ça, il suffit d’indiquer dans notre fichier composer.json la version de PHP que nous voulons utiliser.
Au niveau de la clé » config » nous allons ajouter la version à utiliser:
Dans Symfony, ce qui est génial c’est les commandes de génération de Code. Entre le Make:Entity et le Make Crud, on gagne un temps fou, mais il reste une certaine petite chose qui peuvent vous faire perdre du temps si vous débutez.
Et l’une d’elles qui m’as bien pris la tête alors que c’est tout bête, c’est la gestion des relations ManyToMany dans les formulaires.
Pour rappel, un ManyToMany, c’est une relation qui peut avoir plusieurs références à des entités. Comme des tags par exemple, je peux avoir un tag techno qui peut être lié à plusieurs articles, mais un article peut avoir plusieurs tags.
Dans le formBuilder, il faut ajouter sur notre champs M2M, le type de champs, donc EntityType , et la classe cible.
Après un traitement plus ou moins long, normalement il vous demande de creer un utilisateur pour la gestion des base de données. Si ce n'est pas le cas, comme pour moi, il suffit de taper :
sudo mysql_secure_installation
On va vous demander le mot de passe admin, si l'ont doit supprimer les acces anonyme.
Si vous préferez le yml ou le xml à la place des annotations, il suffit de replacer annotation dans la commande.
Pour générer les accesseurs, il suffit de taper:
php bin/console make:entity --regenerate App
Il reste quelque petit trucs à ajouter à la main, mais ça supprime déjà pas mal de travail répétitif et sans intérêt.
Gérer le consentement aux cookies
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’internaute, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
L’accès ou le stockage technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’internaute.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’internaute sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.