Application Program Interface (API)
A mon sens, deux contributions majeures réalisées par les utilisateurs d'IPB apportent une valeur ajoutée non négligeable à ce produit : Mod Installer et IPB SDK. La première vise à faciliter les modifications personnelles du code source. La seconde correspond à une API, une véritable trousse à outils qui permet de récupérer de très nombreuses fonctionnalités d'IPB...
Voilà des idées géniales qui malheureusement sont difficilement compatibles avec l'orientation commerciale empruntée par IPB. Un produit dont le code source tend progressivement à ne plus être accessible et qui préfère manifestement privilégier ses interactions avec les autres produits IPS plutôt qu'avec tout type de scripts externes. Dommage pour les utilisateurs. Business is business...
Néanmoins, le potentiel d'une API associée à des forums de discussion reste immense. Et actuellement terriblement sous-exploitée. Qui n'a jamais voulu y récupérer des informations ou des fonctionnalités pour les utiliser dans un site internet ? des messages publiés, par exemple, des identifiants de connexion, la liste des inscrits, la liste des utilisateurs connectés, les systèmes de protection, le système d'abstraction de base de données, le parseur de bbcodes, des éléments de mise en page, la gestion des sessions... Qui n'a jamais souhaité pouvoir interagir à "distance" sur ses forums de discussion : ajouter des messages ou des utilisateurs, modifier des données, créer un portail personnalisé... Qui ne s'est jamais retrouvé à avoir plusieurs identifiants de connexion (forum/site/webmail...) sur un même site ? Quel hébergeur, ou autre prestataire de services, n'a jamais souhaité pouvoir synchroniser ses forums de discussion et ses outils d'administration ?
Le potentiel d'une API est immense. C'est sans aucun doute une idée à exploiter. Conceptuellement cela peut aussi servir de fil conducteur au développement du phpStudio : il faut identifier les fonctionnalités séparément, les découper, les regrouper en modules, les documenter, dégager les relations nécessaires, identifier les données qui sont échangées, définir des classes, les héritages à mettre en oeuvre, les méthodes, les fonctions, etc. Tout un programme. L'API fera intégralement partie du phpStudio, elle devrait en être le noyau.
En pratique, il devrait alors suffire de quelques lignes de code pour profiter des fonctionnalités du phpStudio, indifféremment au sein même de l'application ou dans un script externe :
<?php
require('./phpstudio/api/index.php);
$GLOBALS['gApiStudio'] = new API();
$GLOBALS['gApiStudio']->init(array( 'default_lang'=>'fr') );
/* test - surcharge du serveur : */
if ( $GLOBALS['gApiStudio']->server_overload() )
{
die('surcharge');
}
/* test - bannissement : */
if ( $GLOBALS['gApiStudio']->session->is_new_session() )
{
$ban_status = $GLOBALS['gApiStudio']->session->check_ban();
if ( !empty($ban_status['value']) )
{
echo '<strong>Accès refusé !</strong> (motif : '
. $ban_status['description']} . ')';
exit();
}
}
/* suite du script */
?>
Evidemment on peut craindre que cette conception aura un certain coût en terme de ressources nécessaires. Mais l'idée reste hautement séduisante, non ?
Commentaires (2)