#73 Corcel, le connecteur universel WordPress ?

Petit coup d’oeil sur un outil assez prometteur qui devrait faciliter la vie des dév, de tous horizon, qui travaillent avec WordPress.

Principe général

Une base WordPress, un back office tel qu’on les aime, en tout cas qu’on connaît bien, simplifié.

Un frontend comme on veut avec Laravel ou toute base code PHP.

Disclaimer

Je ne vais pas évoquer la partie Laravel que je connais moins. Je ne doute pas de la qualité de l’outil en la matière.

Revue rapide du code

On retrouve toutes les notions WordPress essentielles : les posts, les custom post types, les taxonomies, les champs personnalisés, les médias, les menus, les users, les options… même les shortcodes !

Full composer, autoload all the thing !

Un ch’tit autoload pour charger la bête :

require __DIR__ . '/vendor/autoload.php';

composer, c’est moderne, mais au-delà de ça c’est surtout pratique ici

Se connecter à la base

Une connexion facile à la base de données :

$params = array(
    'database'  => 'database_name',
    'username'  => 'username',
    'password'  => 'pa$$word',
    'prefix'    => 'wp_' // préfixe par défaut à changer évidemment !
);
Corcel\Database::connect($params);

source

Une série de wrappers à étendre

Vous aurez toute une série de petits utilitaires sous la forme de classes php à insérer dans vos codes, par exemple, pour récupérer les données d’un post :

$post = Post::find(73);// récupère les données du post dont l'ID est 73

la classe Post est extensible, de quoi rajouter vos propres logiques, internes à vos équipes, avec une base robuste qui vous évite tout le travail d'”interfaçage” avec la base qui est, non pas complexe, mais long.

La bonne idée ACF !

WordPress c’est cool mais la plupart des projets dépendent d’une flopée de métadonnées, d’options, et autres joyeuseries qui permettent de les personnaliser.

Cela fonctionne avec des métadonnées classiques mais surtout avec le plugin Advanced Custom Fields :

$post = Post::find(42);
echo $post->acf->monChampPerso

Pour bénéficier de cette fonctionnalité, on retrouve la même logique WordPress de plugins avec un plugin Corcel :

Corcel ACF

L’intérêt

En général

Toujours ce même principe de gagner du temps mais en évitant d’avoir à tout refaire donc finalement la logique WordPress mais étendue, rendue disponible au multivers php.

Même pour ceux issus de l’univers WordPress, s’affranchir de la hiérarchie des templates, de certaines API WordPress, tout en gardant ce fameux back-office pour la contribution, offre de belles perspectives.

C’est AMHA une bonne chose que ce genre de ressources existent, cela peut aider à populariser encore plus WordPress auprès de professionnels php qui jusque-là sont, peut-être, réfractaires parce que l’outil n’est pas assez moderne à leur goût.

En particulier ici

J’ai apprécié cette série de classes très utiles, le code est lisible et la documentation est soignée. L’argument de la documentation est pour moi un argument massue et je ne parle pas que d’exemples de code avec une coloration syntaxique.

Certains titres comme “Querying Posts by Custom Fields” ou encore “acf” ou bien encore Post::registerPostType ou même “authentication” sont très parlants pour qui travaille avec WordPress au quotidien dans ses développements.

Conclusion

Un outil à tester absolument. On dit souvent qu’avec WordPress on évite de réinventer la roue, seulement quand on part de zéro, sans loop et autres apis de WordPress, tout en récupérant des données issues d’une base WordPress, il faut bien écrire des petites méthodes et donc quelque part pondre des roues.

Au final, ces “roues” n’auront pas de valeur ajoutée contrairement aux méthodes qui, elles, sont vos logiques internes, propres au projet, autant ne pas perdre de temps sur des wrappers génériques de récupération de posts et autres.

C’est de l’open source alors on a cette question de la maintenance de la ressource qui se pose. Mais c’est l’oeuf ou la poule, plus un outil est utilisé, forké, amélioré, “pull requesté”, mieux il est maintenu.