J'écris un module Drupal qui traite de la création de nouveaux noeuds à partir de fichiers CSV. La façon dont je l'ai fait actuellement, l'utilisateur fournit un type de nœud, et mon module va à la base de données pour trouver les champs pour ce nœud. Une fois que l'utilisateur a mis en correspondance les champs de nœud avec les champs CSV, je souhaite valider les données. Cela nécessite de connaître les types de champs de noeud. Je ne suis pas entièrement sûr de savoir comment faire cela. (Peut-être regarder le tableau content_node_field
?)Drupal: Évitez les bases de données lorsque vous traitez des informations de type de noeud?
Ensuite, je dois créer les nœuds. Actuellement, le module crée un nouvel objet StdClass
, le remplit avec les données nécessaires et l'enregistre.
Mais que se passe-t-il si je peux complètement faire abstraction de la base de données et éviter d'y faire face? Que faire si j'ai demandé à l'utilisateur un noeud de ce type qui existe déjà? Je pourrais node_load()
ce noeud, et l'utiliser pour déterminer les champs de noeud. Quand viendra le temps d'enregistrer les nœuds, je pourrais utiliser le nœud "seed" pour déterminer quelle devrait être la structure des nouveaux nœuds. Un inconvénient: cela nécessite qu'au moins un noeud de ce type existe avant que le module puisse fonctionner.
Aussi, serait-ce plus lent que d'accéder directement à la base de données?
Je crains qu'avec le temps, les noms de base de données puissent changer et que les types de contenu puissent être définis sur plusieurs tables. En travaillant uniquement à partir d'un nœud pré-existant, je pourrais contourner plusieurs de ces problèmes. Droite?
ouais, je sais que je devrai finir le db par la suite, c'est juste une question de savoir si je dois ou non écrire SQL moi-même ou utiliser ce qui a déjà été écrit. –