Section php

Partitech Sonata Extra Bundle : Firewall

Écrit par tbourdin le 25/12/2023
Tags :   Sonata-page, symfony
The SonataExtraBundle provides an enhanced set of functionalities for managing firewall rules within the Sonata Admin environment. This bundle allows administrators to create and manage rules for filtering requests based on various criteria like stop words, IP addresses, and User Agents. Features Firewall Rule Management: Define and manage firewall rules to filter incoming requests. Support for Multiple Criteria: Filter requests based on stop words, IP addresses, and User Agents. Dynamic R...

Comment créer un transport d’e-mail personnalisé avec Symfony Mailer

Écrit par tbourdin le 19/05/2023
Catégorie :   PHP, symfony
Tags :  
Aujourd’hui, nous allons voir comment créer un transport d’e-mail personnalisé avec Symfony Mailer. Pour l’exemple, nous créerons un transport nommé « pt ».PrérequisAvant de commencer, assurez-vous d’avoir installé et configuré Symfony Mailer et HttpClient dans votre projet. Vous pouvez les ajouter à votre projet avec les commandes suivantes: composer require symfony/mailer composer require s...

PHP FFI : création d’un bind avec une lib, QuickJS – partie 5

Écrit par gbourdin le 24/01/2023
Catégorie :   PHP, PHP / FFI
Tags :  
Pour clôturer ce mini dossier technique sur les foreign functions interface de PHP, je me suis mis en tête de me connecter simplement à une lib. Une sorte de Challenge qui pourrait en même temps me faire progresser sur le sujet. Il m’a fallu donc trouver une idée de projet. Un truc pas trop petit ni trop simple mais pas non plus un truc trop gros. Raté, j’ai trouvé une idée m...
replication_mysql

Symfony : Forcer une entité d’utiliser une autre connexion BDD que celle configurée par défaut

Écrit par admin le 19/01/2023
Catégorie :   PHP, symfony
Tags :  
Il n’est pas rare d’avoir plusieurs bases de données pour un même projet. Normalement, lorsque 2 bases de données sont utilisées les entités peuvent être rangées dans des répertoires spécifiques qui sont déclarés dans votre configuration. Et dans ce cas le système va utiliser la connexion configurée pour le répertoire de l’entité. Vous pouvez voir un exemple de connexion mu...
image-61

Utiliser composer et bin/console de votre image docker directement depuis PHPSTORM

Écrit par gbourdin le 19/01/2023
Catégorie :   PHP, symfony, Divers, phpstorm
Tags :  
Ok, vous êtes comme moi. Votre machine n’a rien d’installé en local. Pas même composer et même pas PHP en CLI ! Alors que vous utilisez PHP et peut être bien Symfony (ou pas) vous avez besoin dans tous les cas d’utiliser composer quotidiennement. Vous utilisez tous les jours PhpStorm et vous vous dites que c’est dommage de ne pas bénéficier de toutes les options de votre IDE notamment to...
image-23

Sonata custom actions

Écrit par gbourdin le 19/01/2023
Catégorie :   PHP, symfony, Sonata
Tags :   sonata
Pour faire suite à l’article écrit par Thomas Bourdin SYMFONY / SONATA : AJOUTER UNE FONCTION CLONE DANS UN CRUD, nous allons montrer comment, de manière très simple, nous pouvons ajouter des actions personnalisées dans une interface. Sur le Dashboard : Mais nous allons également voir comment personnaliser simplement et de manière générique les actions personnalisées du listing, de l’entête de votre CRUD et pour finir comm...
debugger

Debugger avec PhpStorm et Symfony dans une image Docker

Écrit par gbourdin le 19/01/2023
Catégorie :   PHP, PHP / FFI, symfony, phpstorm
Tags :  
Configuration de PHP/Docker Si vous développez sous Symfony, installé dans un docker compose et que vous n’utilisez pas encore le debugger, alors cet article est fait pour vous. Nous allons vous montrer comment préparer votre environnement pour ne plus avoir à faire de dd() ni de var_dump. Une fois que vous aurez goûté aux joies du debugger vous ne pourrez plus vous en passer tellement vous allez gagner en confort...
packagist_front_image

Créer une librairie avec composer

Écrit par gbourdin le 04/01/2023
Catégorie :   PHP, Divers
Tags :  
Composer c’est quoi ? A l’image de NPM pour javascript , composer est l’outil dédié à PHP vous permettant de gérer les dépendances de librairies de vos applications. Si vous utilisez un framework du type Symfony vous l’avez obligatoirement utilisé. En réalité tout développeur PHP l’utilise quotidiennement. Si vous êtes sur cette page c’est que probablement vo...
entete_quality_tools

PHPSTORM Configuration des ‘Quality tools’ dans une image Docker

Écrit par gbourdin le 15/12/2022
Catégorie :   PHP, symfony, phpstorm
Tags :  
Voici une question que je me suis posée récemment. Habituellement j’installe directement les outils de QA sur mon host ou directement dans l’image Docker. Si les outils sont installés sur mon host, pas de problèmes pour configurer PhpStorm. Si les outils sont directement configurés dans l’image Docker, pas de problèmes non plus pour l’utiliser à l’intérieur de l’image. En...
Sonata_exemple_slug

Sontata DataMapper et Autowiring

Écrit par gbourdin le 08/12/2022
Catégorie :   PHP, symfony, Sonata
Tags :  
Si vous avez un besoin spécifique de transformation de données entre le formulaire et l’enregistrement de votre entité et que vous pensez que ce code de transformation devrait se trouver dans un service, car cela vous semble plus logique, vous pouvez utiliser le dataMapper en utilisant l’injection de dépendance fournit par Symfony. Mais alors comment le mettre en oeuvre ? Un petit rappel sur le DataMapper. Si on s’accorde à la documentatio...
Selection_254

SF6 / Sonata 5 : Gérer une interface OneToMany dans un CRUD avec les CollectionType de sonata

Écrit par tbourdin le 27/11/2022
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony, admin
Dans cet exemple nous allons prendre le cas concret d’une interface simple qui comprend des éléments multiples. Nous avons choisis d’utiliser une table « Projets » dans laquelle nous allons affecter des documents. Donc pour un projet, nous pouvons affecter plusieurs documents. Et pour faciliter l’administration, nous allons faire en sorte de pouvoir gérer notre interface imbriquée directemen...
php-ffi-partie4

PHP FFI : utilisation d’une lib Kotlin Multiplateforme – partie 4

Écrit par gbourdin le 11/11/2022
Catégorie :   PHP, PHP / FFI
Tags :  
Avec Stéphane Péchard https://www.linkedin.com/in/stephanepechard/, expert Android et guru KMP, on s’est demandé si développer un algorithme sous KMP et l’exécuter directement en PHP serait réalisable. Le cahier des charges était simple : le dev Android (Stéphane donc) me fournit un header file, un .so et je me débrouille. Avec le header file, l...
php-ffi-partie3

PHP FFI : CallBack – partie 3

Écrit par gbourdin le 11/11/2022
Catégorie :   PHP, PHP / FFI
Tags :  
Le CallBackJ’ai pu remarquer pendant la préparation de cet article que pas mal de ressources sur le net utilisent la libc directement pour faire leurs exemples. Vous trouverez facilement des exemples assez démonstratifs et simples. Mais pour faire cool et original, je me suis dit “allez moi aussi je vais trouver un truc à montrer avec cette libc”. M’enfin… si c’est juste passer une structure comme le font la pl...
php-ffi-partie2

PHP FFI : passage de paramètres – partie 2

Écrit par gbourdin le 11/11/2022
Catégorie :   PHP, PHP / FFI
Tags :  
Appeler directement la librairie php ?Et si on s’amusait à réaliser un bout de code qui ne sert à rien ? Allez !!! Allez !! Allez !!!Bon OK. Je vous propose comme truc inutile d’utiliser PHP pour appeler une lib en C qui utilise le Zend Engine.En réalité ce paragraphe n’est pas aussi inutile que cela. Son but est de vous montrer un comportement particulier 🙂PHP-ffi a quelques limitations ...
php-ffi-partie1

PHP FFI : Introduction – partie 1

Écrit par gbourdin le 11/11/2022
Catégorie :   PHP, PHP / FFI
Tags :  
IntroductionDepuis la version 7.4 de PHP nous avons enfin accès aux fonctions d’interopérabilité entre les différents languages et PHP: le FFI ou Foreign function interface.FFI c’est quoi ? C’est tout simplement la possibilité d’utiliser une librairie externe (.dll ou .so) directement dans PHP, et ce, sans avoir à créer un module PHP. Oui oui, juste avec un script PHP !&n...
Sélection_286

Symfony 6 / Sonata 5 : Installation de SonataClassification.

Écrit par tbourdin le 14/03/2022
Catégorie :   PHP, symfony, Sonata
Tags :  
Nous avons vu dans les article précédents comment initialiser un projet Symfony 6 + Sonata 5 avec les médias et les utilisateurs dans un admin sécurisé. Nous avons vu ensuite comment gérer les localisations de l’utilisateur.Nous allons voir maintenant comment installer et gérer les classifications. On procède à l’installation de la dernière version en date. php8.1 composer...
Sélection_267

Symfony 6 / Sonata 5 : Lier les locales et le timezone aux préférences utilisateur.

Écrit par tbourdin le 10/03/2022
Catégorie :   PHP, symfony, Sonata
Tags :  
Nous avons vu dans un article précédent comment installer Symfony 6 + Sonata Admin 5 avec une gestion d’utilisateurs et de médias. Nous allons poursuivre cette installation avec la configuration des langues et des fuseaux horaires. Nous allons installer intlBundle qui permet de gérer l’affichage localisé. php8.1 composer.phar require sonata-project/intl-bundle On en profite pour ajouter un champs timezone et...
Selection_260

Symfony 6 / Sonata 5 : Initialiser un projet Symfony 6 + Sonata admin 5 + UserBundle + MediaBundle

Écrit par tbourdin le 10/03/2022
Catégorie :   PHP, symfony, Sonata
Tags :  
Voici les commandes pour initialiser un projet Symfony avec un admin sécurisé. Pour faire tourner Symfony 6 nous devrons installer php8.0 ou php8.1 Pour php8.0 sudo apt-get install php8.0-cli libapache2-mod-php8.0 php8.0-common php8.0-opcache php8.0-igbinary php8.0-imagick php8.0-msgpack php8.0-readline php8.0-memcached php8.0-xml php8.0-mbstring php8.0-gd php8.0-mysql php8.0-curl php8.0-intl php8.0-memcache php8.0-memcached memcached libapache2-mod-php8...

Symfony 4 / Sonata : Créer une deuxième interface avec la même entité

Écrit par tbourdin le 06/11/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Nous allons voir ici comment créer une deuxième interface alors que l’entité est déjà utilisée dans une interface CRUD.Le problème des interfaces générées automatiquement est qu’elles utilisent le nom de l’entité pour construire les routes.Si on configure une deuxième interface avec une entité déjà utilisée on se retrouvera avec la même route que la premi&egr...
Sélection_413-1

Symfony 4 / Sonata : gérer une interface d'admin multi langue

Écrit par tbourdin le 30/10/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Nous allons voir comment configurer une interface d’administration en multilingue avec un bouton de sélection de langue (language switcher).Installation de translationBundle composer require sonata-project/translation-bundle bin/console assets:install Le language switcher nécessite un filtre twig spécifique.Sinon vous aurez une erreur de type :Unknown "language_name" filter.Il faut alors installer ces deux bundles composer require twig/intl-extra composer require t...