Jean-Pierre Lambelet

Astuces dev notées au fil des projets depuis 2014. Actuellement chez Liip à Lausanne, sur la plateforme RAG LiipGPT.

  • PHP
  • Symfony
  • AI / RAG
  • Drupal
  • Docker

À propos LinkedIn

Articles récents

Une extension Chrome pour retrouver les conversations WhatsApp sans réponse

Person holding a smartphone showing a messaging app — illustration for an article about a Chrome extension to find unanswered WhatsApp chats

J’ai récemment ouvert WhatsApp Web et compté : 52 conversations où l’autre attendait une réponse de moi, perdues dans des centaines de groupes et de fils de notifications. Le filtre natif (Toutes / Non lues / Favoris / Groupes) ne propose pas de vue « à répondre ». Non lues ne capture que les messages … Lire la suite

Symfony – debugger la valeur d’une variable d’environnement

Code sur écran d'ordinateur

Dans Symfony il est possible de définir certaines configurations dans le fichier .env. Pour être sûr de la valeur que le programme reçoit lors de son exécution il existe la commande suivante php bin/console debug:container –env-var=DATABASE_URL –env=test Avec cette commande on pourra facilement voir la valeur que Symfony utilise php bin/console debug:container –env-var=DATABASE_URL Symfony Container … Lire la suite

Symfony – Doctrine – Comment voir où est exécutée une requête SQL

MacBook avec code sur un bureau

Lorsque l’on utilise Doctrine, il est parfois important de trouver où est exécutée une requête SQL. Pour ce faire, il suffit d’activer l’option suivante dans la configuration Doctrine doctrine: dbal: default_connection: default # A collection of custom types types: # example some_custom_type: class: AcmeHelloBundleMyCustomType connections: # A collection of different named connections (e.g. default, conn2, … Lire la suite

Drupal 7: Créer un field datetime dans un schema avec db_create_table

Code de programmation sur écran

Pour la création d’une table dans Drupal 7, on peut utiliser le hook « mon_module_update_7000 » dans le fichier « mon_module.install ». Le type datetime n’est malheureusement pas mappé, c’est pour cela qu’il faut utiliser la clé « mysql_type » const MON_MODULE_TABLE_NAME = ‘mon_module_table’ function get_mon_module_schema() : array { return [ ‘description’ => ‘description’, ‘fields’ => [‘id’ => [‘type’ => ‘serial’, ‘unsigned’ => TRUE, … Lire la suite

Installer drupal/console sur drupal 9

Code de programmation sur écran

Actuellement le module drupal/console n’est pas mis à jour pour Drupal 9. Pour pouvoir l’utiliser il faut passer quelques flags à Composer composer require drupal/console:~1.0 –prefer-dist –optimize-autoloader –sort-packages –no-update composer update L’issue concernant ce bug est toujours ouverte: https://github.com/hechoendrupal/drupal-console/issues/4220

PHP code style : comment garder son code propre avec PHP Coding Standards Fixer

Code sur écran d'ordinateur

Un outil vraiment très utile pour garder son code propre est PHP Coding Standards Fixer. Il nous permet de suivre les standards de PHP définis dans PSR-1, PSR-2, etc. Il est aussi possible de le configurer pour suivre le style de son équipe avec une documentation. La manière recommandée de l’installer est en dehors de … Lire la suite

PHPUnit : comment tester un contrôleur qui lance une erreur

Code sur écran d'ordinateur

Imaginons que nous avons une méthode dans un controller comme cela: /** * @Route(path= »/add », name= »add », methods={« POST »}) */ public function add(Request $request,): Response { throw new BadRequestHttpException(‘Error’); } Pour tester que l’exception est bien levée il suffit d’écrire ceci public function testList(): void { $this->expectException(BadRequestHttpException::class); $client = self::createClient(); $client->catchExceptions (false); $crawler = $client->request( Request::METHOD_POST, ‘/add’ ); … Lire la suite