WordPress pour le développement d'applications Web une introduction

Plus que jamais, les développeurs et les concepteurs commencent à comprendre le potentiel d'utilisation de WordPress pour créer des applications Web..

J'entends par là que la communauté commence à voir que WordPress peut être utilisé pour autre chose que pour la gestion de blogs et pour la gestion de contenu: il peut plutôt être utilisé pour alimenter des applications basées sur une base de données qui s'exécutent dans le contexte du navigateur Web..

Et pourquoi pas, non? Lorsque vous prenez du recul et que vous examinez tout ce que propose WordPress, vous avez de solides arguments en faveur de la puissance de WordPress..

Par exemple, WordPress est livré avec:

  • Une base de données avec un schéma de données flexible
  • Une couche d'application centrale avec de nombreux crochets dont nous pouvons tirer parti
  • Capacité à gérer des tâches côté client, serveur, utilisateur et administrateur

En fait, Matt Mullenweg aurait été cité comme suit:

Quand vous y réfléchissez, nous construisons un système d'exploitation Web..

Mais cela ne signifie pas que WordPress est la solution idéale pour tout. Après tout, combien de cadres, de fondations, de bibliothèques, d’outils et ainsi de suite avons-nous pour nous aider à créer des applications Web??

Dans cette série, nous allons examiner exactement ce que propose WordPress en ce qui concerne la création d’applications Web, la différence entre un cadre d’application et une fondation, les fonctionnalités qui se prêtent à la création d’applications complètes avec WordPress, comme ainsi que la façon dont WordPress est ne pas une solution miracle pour écrire un logiciel pour le web.


Des cadres et des fondations

L’un des faux noms les plus courants que j’entends s’appliquer à WordPress est la cadre pour les applications web. Par la définition même de "framework" et par la définition même de ce que WordPress est, ce n'est pas un framework - c'est un fondement.

Qu'est-ce qu'un cadre?

Selon la définition de Wikipedia, un framework logiciel est le suivant:

En programmation informatique, un framework logiciel est une abstraction dans laquelle un logiciel fournissant une fonctionnalité générique peut être modifié de manière sélective par un code supplémentaire écrit par l'utilisateur, fournissant ainsi un logiciel spécifique à l'application. Un framework logiciel est une plate-forme logicielle universelle et réutilisable permettant de développer des applications, des produits et des solutions. Les infrastructures logicielles incluent des programmes de support, des compilateurs, des bibliothèques de codes, des jeux d'outils et des interfaces de programmation d'application (API) qui rassemblent tous les composants nécessaires au développement d'un projet ou d'une solution..

Pour le dire simplement, un cadre consiste en un ensemble de conventions - telles que  les fichiers doivent aller - ainsi que les bibliothèques et les outils - tels que la couche d'abstraction de base de données - qui nous permettent de commencer facilement à travailler sur une application.

Avec une infrastructure, vous pouvez vous concentrer sur un domaine de problème spécifique propre à la solution que vous essayez de créer. Par exemple, supposons que vous allez créer un type de logiciel de compte simple qui soit responsable du suivi des dépôts, des retraits et du suivi des liquidités disponibles (ou des liquidités moins disponibles)..

Dans ce scénario, vous disposez d'une base de données unique à ce problème, d'une couche d'abstraction de base de données facilitant la lecture et l'écriture de données dans le schéma défini, ainsi que d'un ensemble de conventions d'organisation du code de présentation (c'est-à-dire responsable de l’affichage des données à l’utilisateur et avec lesquelles celui-ci interagit) et de l’organisation du code de l’application situé entre le code de présentation et le code de la base de données qui encapsule toute logique métier propre au problème.

Vous voyez, un cadre fournit les moyens par lesquels une application peut être construite à partir de la base. Cela facilite la création d’une application à partir du schéma de base de données jusqu’au serveur frontal..

Alors qu'est-ce qu'une fondation??

La vérité est que cela ressemble beaucoup à ce que propose WordPress, n'est-ce pas?

En réalité, WordPress fournit une base de données prédéfinie, un ensemble prédéfini de code d’application (et donc des API), ainsi que des moyens de restituer des données à l’aide de fichiers modèles..

En termes simples, WordPress est une application qui fournit un ensemble d’API et de conventions que nous pouvons utiliser pour créer des applications par-dessus. Il fournit déjà un schéma, une logique de données centrale, une logique métier et des stratégies de présentation prêtes à l'emploi..

Alors qu’un framework vous permet de construire une application, une fondation vous permet d’étendre une application..

Et c'est ce que nous finissons par faire avec WordPress: nous tirons parti de la base de données prédéfinie, des API disponibles et du système de modèles pour afficher les données afin de créer des solutions à l'aide d'une application déjà définie..

En bref, les logiciels peuvent être construits sur des frameworks, les logiciels peuvent étendre des fondations.

Un peu confus?

Comme nous l'avons fait dans la dernière section, nous avons examiné comment créer un logiciel de comptabilité très simple. Rappelez-vous qu'il était nécessaire de définir un schéma de base de données, d'écrire du code pour la lecture et l'écriture dans la base de données, d'écrire du code pour gérer la logique métier, de créer des modèles pour le rendu des données et l'interaction avec l'utilisateur, puis de placer les fichiers là où ils étaient requis cadrer avec les conventions du cadre.

Avec WordPress, il est tout à fait possible d'utiliser le système de base de données existant pour gérer tout cela. Vous pouvez utiliser des API pour nettoyer et valider des données, vous pouvez utiliser des modèles pour restituer les informations, et vous pouvez utiliser des points d'ancrage pour implémenter des fonctionnalités personnalisées d'interaction avec l'utilisateur..


Alors, quelle est la différence?

Alors oui, bien que le même type de logiciel puisse être construit sur un framework ou une fondation, il existe des différences entre les frameworks et les fondations, et je pense qu'il est très important de comprendre la différence avant de plonger plus profondément dans la série..

En termes simples, les frameworks ne sont pas des applications, les fondations sont des applications.

Le simple fait de pouvoir créer une application Web à l'aide de WordPress n'en fait pas un cadre. C'est une fondation. C'est une application en soi qui peut être étendue à autres applications.

Des éléments tels que Rails, Laravel, CakePHP, Zend et CodeIgnitor sont des frameworks, car lorsque vous les téléchargez, les installez et les configurez, ils ne peuvent pas réellement faire rien jusqu'à ce que vous leur donniez assez de code pour le faire.

Les fondations ne sont pas comme ça. Ils peuvent déjà faire des choses, que vous ayez écrit vous-même une ligne de code ou non..


Quoi de neuf ensuite?

Comme nous l’avons mentionné, tout au long de cette série, nous allons jeter un coup d’œil sur les bases de WordPress pour l’écriture d’applications Web..

Bien sûr, là est pas de solution miracle pour écrire une application Web. Le but de la série n’est pas de convaincre qui que ce soit de savoir pourquoi WordPress devrait être utilisé par-dessus tout autre cadre ou base. Au lieu de cela, le but est simplement de montrer ce que vous pouvez faire avec WordPress et pourquoi peut être une alternative viable pour votre prochain projet.

Bien qu’il n’y ait pas beaucoup de matériel technique - tel que du code - il volonté De nombreux exemples des API disponibles dans WordPress, de leur utilisation et de leur utilité pour l'écriture d'une application..

À partir du prochain article, nous verrons ce que signifie modifier notre modèle conceptuel de conception d'applications Web à partir de modèles et de frameworks pour un système similaire à WordPress..