COQUARD Cyrille
18/04/2024
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
À WP Media depuis 2 ans
18/04/2024
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
18/04/2024
Introduction
18/04/2024
COQUARD Cyrille
Introduction
18/04/2024
COQUARD Cyrille
Introduction
<?php
do_action('my_action', 'parameter1', 10, true);
<?php
add_action('my_action', function(
$parameter,
$second
) {
// my logic
}, 10 ,2);
Developpeur
Client
18/04/2024
COQUARD Cyrille
Introduction
18/04/2024
COQUARD Cyrille
Developpeur
Introduction
<?php
$my_value = apply_filters(
'my_filter',
10
);
<?php
add_filter(
'my_filter',
function($parameter) {
return $parameter;
}
);
Client
18/04/2024
COQUARD Cyrille
Introduction
18/04/2024
COQUARD Cyrille
Introduction
18/04/2024
COQUARD Cyrille
Introduction
18/04/2024
COQUARD Cyrille
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
Choix non technique
Options
Choix avancé
Visible que des experts
Filtres
18/04/2024
COQUARD Cyrille
Une valeur définie sans ou avec peu d'explications
<?php
$hour = 60 * 60;
$delay = 10 * $hour;
18/04/2024
COQUARD Cyrille
Utilisation d'un filtre
<?php
$delay = apply_filters(
'my_plugin_cron_mails_delay',
10 * HOUR
);
Utilisation d'une constante
<?php
const MINUTE = 60;
const HOUR = 60 * MINUTE;
18/04/2024
18/04/2024
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
COQUARD Cyrille
18/04/2024
18/04/2024
COQUARD Cyrille
Garder simples les interactions:
18/04/2024
COQUARD Cyrille
Types de base
Tableaux
18/04/2024
COQUARD Cyrille
Votre code n'est pas le centre du monde
Chercher dans le code casse le concept d'abstraction
18/04/2024
COQUARD Cyrille
Liste sous forme d'un YAML
Génération de la doc sous la forme d'une page web
18/04/2024
COQUARD Cyrille
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
18/04/2024
Seul
Fait ce qu'on veux
Voisins
Règles communes
18/04/2024
COQUARD Cyrille
Seul
Fait ce qu'on veux
Autres plugins
Règles communes
18/04/2024
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
Plus stable
Chaque plugin à son impact
18/04/2024
COQUARD Cyrille
COQUARD Cyrille
18/04/2024
Changer une classe peut aboutir à une erreur n'importe où
Perte de temps car il faut tout tester
Logique principale et secondaire sont melangées
COQUARD Cyrille
18/04/2024
18/04/2024
COQUARD Cyrille
Une classe n'est utilisée que dans sa feature
Les options sont prefixées par le nom de la feature
Action: pour lancer une action basée sur une autre feature
Filtre: pour récuperer une information basée sur une autre feature
18/04/2024
COQUARD Cyrille
Division des logiques
Reduction des chances de bugs
Faciliter les tests
18/04/2024
COQUARD Cyrille
COQUARD Cyrille
18/04/2024
18/04/2024
COQUARD Cyrille
COQUARD Cyrille
18/04/2024
Ne pas répéter la logique de validation des filtres
Externaliser l'enregistrement des hooks
Controler la valeur de retour des filtres
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
18/04/2024
Répétiton logique de l'enregistrement
Simuler enregistrement des hooks chaque test
Couplé fortement à l'API WordPress
COQUARD Cyrille
18/04/2024
COQUARD Cyrille
Subscriber contient la logique business
Subscriber envoie événements
Event Manager enregistre les événements
18/04/2024
COQUARD Cyrille
18/04/2024
Ne pas répéter la logique l'enregistrement des hooks
Externaliser l'enregistrement des hooks
Faciliter les tests
COQUARD Cyrille
18/04/2024
https://github.com/wp-launchpad/launchpad
COQUARD Cyrille
18/04/2024
18/04/2024
COQUARD Cyrille