57
OUVRIR VOS PLUGINS AUX AUTRES DÉVELOPPEURS Petite leçon de modularité © Rémi Corson | WPtech Nantes | 29 Novembre 2014

Ouvrir vos plugins aux autres développeurs - WPTech Nantes

  • Upload
    corsonr

  • View
    3.190

  • Download
    0

Embed Size (px)

DESCRIPTION

Apprenez à ouvrir votre code aux développeurs: pourquoi ? Comment ? Crée des plugins modulaires pour assurer la pérennité de vos produits.

Citation preview

Page 1: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

OUVRIR VOS PLUGINSAUX AUTRES DÉVELOPPEURS

Petite leçon de modularité© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 2: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

RémiCORSON

Ninjineer @ WooThemes

remicorson.com@remicorson

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 3: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

DON'T SPEAK FRENCH?

HTTP://GOO.GL/W2G9RX© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 4: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

POURQUOI ?© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 5: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

"De la même manière que nous modifions WordPress avec nos plugins, nous

pouvons altérer nos plugins par d'autres plugins"

— Pippin Williamson, Lead Developer Easy Digital Downloads

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 6: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

"L'ouverture de votre code est la meilleure façon de faire croître votre produit rapidement; Plus de dévs = plus de

contributions"— Mike Jolley, Lead Developer WooCommerce

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 7: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

"Il est important de créer des opportunités d'affaires autour de votre produit afin d'assurer sa durabilité et

sa rentabilité"— Mark Forrester, co-fondateur de WooThemes

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 8: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

"Permettre de modifier ou d'ajouter des fonctionnalités à votre plugin étend

naturellement sa base"— Magnus Jepson, co-fondateur de WooThemes

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 9: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

WOOCOMMERCE SUBSCRIPTIONSEST LE PRODUIT QUI SE VEND LE PLUSSUR WOOTHEMES.COM

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 10: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

LA SOCIÉTÉ Skyverge EMPLOIE6 PERSONNES À TEMPS PLEIN

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 11: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

DÉFINITION© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 12: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

UN PLUGIN MODULABLE EST UN PLUGIN POUVANT ÊTRE

MODIFIÉ & ETENDUSANS QUE SON CODE NE SOIT MODIFIÉ

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 13: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

MODULABLE=

FLEXIBLE, ADAPTABLE, AJUSTABLE© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 14: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

MODULABLE!=

INADAPTABLE, REBELLE, RÉCALCITRANT© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 15: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

EXEMPLES© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 16: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

UN PLUGIN DE ECOMMERCEPERMETTANT D'AJOUTER DES MOYENS DE PAIEMENTOU DES OPTIONS DE LIVRAISON (FEDEX, UPS...)

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 17: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

UN PLUGIN DE FORUMSPERMETTANT DE RESTREINDRE LES CONVERSATIONSSELON LE RÔLE DES UTILISATEURS

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 18: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

UN PLUGIN TYPE SLIDERPERMETTANT DE CUSTOMISERLE VISUEL DES SLIDES

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 19: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

QUE PEUT-ONMODIFIER ?

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 20: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

TEXTESIMAGES

DONNÉESVISUELS

FONCTIONS© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 21: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

COMMENT ?© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 22: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

AVECDES

HOOKS© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 23: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

ADD_ACTION()DO_ACTION()ADD_FILTER()

APPLY_FILTERS()© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 24: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

LES ACTIONS SONT DÉCLENCHÉES PAR DES ÉVÉNEMENTS SPÉCIFIQUES:

- PUBLICATION D'UN ARTICLE- ACTIVATION D'UN THÈME- AFFICHAGE D'UNE PAGE DE L'ADMIN

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 25: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

LES FILTRES SONT DES FONCTIONSPERMETTANT DE MANIPULER LES DONNÉES

LANCÉES ENTRE LA BASEET LE NAVIGATEUR ET

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 26: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

CODE© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 27: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

function mon_shortcode() { ob_start(); ?>

<div id="conteneur"> <p>Mon message</p> </div>

<?php return get_ob_clean();}add_shortcode( 'affiche_message', 'mon_shortcode' );

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 28: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

CA FONCTIONNEMAIS...

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 29: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

function mon_shortcode() { ob_start(); ?>

<div id="conteneur"> <p>Mon message</p> <?php do_action( 'sous_message' ); ?> </div>

<?php return get_ob_clean();}add_shortcode( 'affiche_message', 'mon_shortcode' );

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 30: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

CE QUI PERMET...© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 31: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

function mon_shortcode() { ob_start(); ?>

<div id="conteneur"> <p>Mon message</p> <?php do_action( 'sous_message' ); ?> </div>

<?php return get_ob_clean();}add_shortcode( 'affiche_message', 'mon_shortcode' );

function ajoute_contenu() { echo '<p>2eme message sous mon 1er message</p>'; }add_action( 'sous_message', 'ajoute_contenu' );

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 32: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

EN DÉTAIL...function ajoute_contenu() { echo '<p>2eme message sous mon 1er message</p>'; }add_action( 'sous_message', 'ajoute_contenu' );

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 33: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

LE RÉSULTAT <div id="conteneur"> <p>Mon message</p> <p>2eme message sous mon 1er message</p> </div>

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 34: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

AUTRE MÉTHODE© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 35: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

function mon_shortcode() { $output = '<div id="conteneur">'; $output .= '<p>Mon message</p>'; $output .= '</div>';

return apply_filters( 'mon_message', $output );}add_shortcode( 'affiche_message', 'mon_shortcode' );

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 36: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

function mon_shortcode() { $output = '<div id="conteneur">'; $output .= '<p>Mon message</p>'; $output .= '</div>';

return apply_filters( 'mon_message', $output );}add_shortcode( 'affiche_message', 'mon_shortcode' );

function embed_conteneur( $output ) { return '<div id="conteneur_principal">' . $output . '</div>';}apply_filters( 'mon_message', 'embed_conteneur' );

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 37: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

EN DÉTAIL...function embed_conteneur( $output ) { return '<div id="conteneur_principal">' . $output . '</div>';}apply_filters( 'mon_message', 'embed_conteneur' );

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 38: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

LE RÉSULTAT<div id="conteneur_principal"> <div id="conteneur"> <p>Mon message</p> </div></div>

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 39: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

COMBINAISONDES 2 MÉTHODES

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 40: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

function mon_shortcode() { ob_start(); ?>

<div id="conteneur"> <p>Mon message</p> <?php do_action( 'sous_message' ); ?> </div>

<?php $output = get_ob_clean();

return apply_filters( 'mon_message', $output );}add_shortcode( 'affiche_message', 'mon_shortcode' );

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 41: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

MODÈLES© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 42: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

UTILISER DES MODÈLESC'EST CHARGER SES PROPRES FICHIERSET NE PAS UTILISER LES MODÈLES PAR DÉFAUT

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 43: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

add_filter( 'template_include', 'rc_template_chooser');

function rc_template_chooser( $template ) {

// Récupère l'ID du post $post_id = get_the_ID();

// Charger le modèle par défaut pour les autres CPTs if ( get_post_type( $post_id ) != 'testimonial' ) { return $template; }

// Utiliser notre propre modèle if ( is_single() ) { return rc_get_template_hierarchy( 'single' ); }

}

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 44: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

function rc_get_template_hierarchy( $template ) {

// Récupère le slug du modèle $template_slug = rtrim( $template, '.php' ); $template = $template_slug . '.php';

// Existe t-il un modèle dans le dossier du thème ? (single.php) if ( $theme_file = locate_template( array( 'plugin_template/' . $template ) ) ) { $file = $theme_file; } else { $file = RC_BASE_DIR . '/includes/templates/' . $template; }

return apply_filters( 'rc_template_' . $template, $file );}

CODE COMPLET + TUTORIAL© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 45: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

111 MODÈLES© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 46: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

API© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 47: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

DÉFINITIONUNE API EST UN ENSEMBLE NORMALISÉ DE CLASSES,DE MÉTHODES OU DE FONCTIONS SERVANT DE FAÇADE

PAR LAQUELLE UN LOGICIEL OFFRE DES SERVICESÀ D'AUTRES LOGICIELS

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 48: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

WOOCOMMERCE REST API

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 49: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

REST (REPRESENTATIONAL STATE TRANSFER)EST UN STYLE D’ARCHITECTUREPOUR LES SYSTÈMES HYPERMÉDIA DISTRIBUÉS.REST N’EST PAS UN PROTOCOLE (TEL QUE HTTP)

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 50: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

LA WC REST API PERMET CRÉER DES DONNÉES,

DE LIRE, DE METTRE À JOUR,ET SUPPRIMER AU FORMAT JSON

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 51: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

EXEMPLES:http://site.fr/wc-api/v2/products

http://site.fr/wc-api/v2/ordershttp://site.fr/wc-api/v2/orders?status=completed

http://site.fr/wc-api/v2/orders?filter[created_at_min]=2013-11-01© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 52: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 53: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

EN SAVOIR +http://docs.woothemes.com/document/woocommerce-rest-api/

http://gerhardpotgieter.com/2014/02/10/woocommerce-rest-api-client-library/

http://docs.woocommercev2.apiary.io/introduction/authentication/over-http

© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 54: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

HOOKSMODÈLES

APIS© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 55: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

GITHUBTRELLOGITTERGISTS

TRANSIFEX© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 56: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

MERCI !© Rémi Corson | WPtech Nantes | 29 Novembre 2014

Page 57: Ouvrir vos plugins aux autres développeurs - WPTech Nantes

-25% SUR WOOTHEMES.COM

WOO-WPTECH© Rémi Corson | WPtech Nantes | 29 Novembre 2014