Pourquoi le Drupal n'est-il pas orienté objet?

9

Je viens de commencer à jeter un œil aux documents et aux sources (Drupal 6 pour le moment) et j'ai remarqué qu'il n'y a pas de classes à voir, seulement un grand nombre de fonctions préfixées. Est-ce pratique? Cette décision a-t-elle un contexte? Pourquoi?

jayarjo
la source
Pourquoi utilisez-vous Drupal 6? Drupal 8 est en route!
iconoclaste du

Réponses:

14

Ceci est assez bien expliqué sur la programmation Drupal dans une perspective orientée objet .

En bref, Drupal existe depuis bien plus longtemps que vous ne pourriez utiliser correctement la POO en PHP. Ce qui signifie, PHP5 .

Drupal 7 utilise déjà des classes en interne dans de nombreux endroits et cela continuera probablement avec Drupal 8.

Mais c'est un processus étape par étape et tout ne doit pas nécessairement être une classe. Par exemple, cela n'a aucun sens de faire des modules en une seule classe.

Berdir
la source
Drupal 8 sera très POO, intégrant de nombreux composants de Symfony2. Mais les API pour les développeurs seront toujours les hooks rétrocompatibles, FTMP.
paul-m
Ce sera encore beaucoup plus de POO, et le point sur les API n'est pas correct. C'est juste parce que les choses ne sont pas encore complètement converties. hook_block _ * () vient d'être remplacé par le système de plugin, par exemple, le routage va changer, la configuration va changer, le système d'entité a changé, ...
Berdir
@Berdir Je suis très intéressé par la façon d'utiliser OOP PHP dans Drupal 7 car je ne vais probablement pas passer à Drupal 8 pour le moment. Y a-t-il des exemples?
jerome
5

Drupal a été créé avant que oo ne devienne meilleur en php5. Les objets sont davantage utilisés dans drupal dans chaque version, mais vous devez équilibrer une réécriture complète et ajouter de nouvelles fonctionnalités.

Lucy
la source