web-dev-qa-db-fra.com

Quelle est la méthode préférée pour le partage de code et de requêtes SQL dans joomla 3.9+?

Je développe un composant qui cible Joomla 3.9+. Le code n'utilise pas les classes héritées mais utilise plutôt les nouveaux espaces de noms. Le composant dupliquera une grande partie de la fonctionnalité du côté de l’administrateur, je préférerais donc partager le code et les requêtes SQL le cas échéant. Quel est le meilleur moyen de faire avancer les choses? Devrais-je utiliser le modèle d'administrateur sur le site? Devrais-je créer une bibliothèque ou un espace de noms? Quelle est la méthode préférée pour ce faire avec la prochaine version 4.0? Aussi, y a-t-il un bon moyen de partager des éléments et des formes d'interface utilisateur entre les deux?

3
nimble

Devrais-je utiliser le modèle d'administrateur sur le site?

C'est ce que j'ai fait dans le passé. Historiquement, j'ai utilisé des modèles d'administration du côté site en faisant quelque chose comme ceci:

$controller->addModelPath(JPATH_COMPONENT_ADMINISTRATOR . '/models');

De nos jours, JLoader prend en charge les espaces de noms de style PSR-4. Si je construisais un composant à partir de rien aujourd'hui, c'est ce que j'utiliserais. Quelque chose dans le genre de:

JLoader::registerNamespace('App', JPATH_COMPONENT_SITE, false, false, 'psr4');
JLoader::registerNamespace('App\\Admin', JPATH_COMPONENT_ADMINISTRATOR, false, false, 'psr4');

J'aurais probablement aussi tendance à garder les actifs partagés dans le domaine site.

2
Ben Harold