Objets flexibles

Flex Objects est un nouveau concept de Grav 1.7, qui ajoute la prise en charge des types de données personnalisés qui peuvent être facilement intégrés à votre site. La prise en charge des types personnalisés et des fonctionnalités d'administration est fournie par le plugin Flex Objects, qui est requis par le panneau d'administration. Ce plugin gère également la création d'objets dans le frontend au cas où vous auriez besoin que les utilisateurs puissent soumettre de nouveaux objets ou y apporter des modifications.

Les fonctionnalités de base de Grav telles que les comptes d'utilisateurs, les groupes d'utilisateurs et les pages ont déjà été converties en objets Flex, bien qu'elles ne soient utilisées que dans le panneau d'administration.

Les répertoires Flex de cette documentation n'ont rien à voir avec l'ancien plugin Flex Directories. En fait, l'ancien plugin a été remplacé par cette fonctionnalité avec le plugin Flex Objects.

Introduction.

Flex est un ensemble de répertoires d'un seul type. Grav a ses propres types intégrés, tels que les comptes d'utilisateurs et les pages. Les plugins et les thèmes peuvent également définir leurs propres types et les enregistrer dans Grav. Avec Flex Objects Plugin, vous pouvez également créer vos propres types et répertoires personnalisés.

Flex.

Flex est un conteneur pour les répertoires Flex.

Cela donne un point d'accès unique pour toutes les données du site, étant donné que les données se trouvent dans un répertoire Flex. Cela rend tous les objets disponibles pour chaque page et plug-in de votre site.

ASTUCE : Même si les comptes d'utilisateur ou les pages Flex ne sont pas activés, vous pouvez toujours accéder à leurs versions Flex à la fois dans l'interface et dans le panneau d'administration.

Type flexible.

Flex Type est le modèle de votre répertoire Flex.

Il définit tout ce qui est nécessaire pour afficher et modifier le contenu : structure des données, champs de formulaire, autorisations, fichiers de modèle, même couche de stockage.

Répertoire flexible.

Flex Directory conserve une collection d'objets Flex d'un seul type Flex.

Chaque répertoire contient une collection d'objets avec une prise en charge facultative des index pour accélérer les requêtes vers le stockage.

Collection flexible.

Flex Collection est une structure qui contient des objets Flex.

La collection ne contient généralement que les objets nécessaires pour afficher la page ou pour effectuer l'action donnée. Il fournit des outils utiles pour filtrer ou manipuler davantage les données ainsi que des méthodes pour rendre l'ensemble de la collection.

Objet flexible.

Flex Object est une instance unique d'un type Flex.

L'objet représente une seule entité. L'objet donne accès à ses propriétés, y compris toutes les données associées, telles que Media. L'objet sait également comment s'afficher ou quel formulaire utiliser pour modifier son contenu. Les actions telles que la création, la mise à jour et la suppression d'objets sont prises en charge par l'objet lui-même.

Index flexible.

Flex Index est utilisé pour effectuer des requêtes rapides vers Flex Directory.

Il contient des métadonnées pour les objets Flex, mais pas les objets eux-mêmes.

Stockage flexible.

Flex Storage est une couche de stockage pour les objets Flex.

Il peut s'agir d'un seul fichier, d'un ensemble de fichiers dans un seul dossier ou d'un ensemble de dossiers. Flex prend également en charge les stockages personnalisés, tels que les stockages de base de données.

Formulaire flexible.

Flex Form s'intègre au pluin de formulaire et permet de créer ou de modifier un objet Flex.

Flex prend en charge plusieurs vues, ce qui permet de modifier différentes parties de l'objet.

Administration flexible.

Flex Administration est implémenté par Flex Objects Plugin.

Il ajoute une nouvelle section au plugin d'administration permettant aux administrateurs de site de gérer les objets flexibles. Chaque répertoire Flex est livré avec une liste de contrôle d'accès de type CRUD, qui peut être utilisée pour restreindre des parties d'Admin et des actions qu'elles contiennent à certains utilisateurs.

Limites actuelles.

Il reste encore beaucoup de travail à faire. Voici les limitations actuelles lors de l'utilisation d'objets Flex :

  • La prise en charge multilingue n'a été implémentée que pour les pages, l'administrateur ne peut pas encore être entièrement traduit
  • Le frontend n'a qu'un routage de base ; pour vos tâches personnalisées, telles que l'enregistrement, vous avez besoin de votre propre implémentation
  • Les fonctionnalités de mise à jour en masse n'ont pas encore été implémentées dans Admin (dans le code, elles sont faciles)
  • En raison des limitations d'indexation, il n'est pas recommandé d'utiliser Flex pour les objets qui sont constamment mis à jour
  • La personnalisation de votre Flex Type nécessite une bonne connaissance du codage et la création de vos propres classes.