Bonjour,
Excusez ces questions d'un vieux développeur né à l'ère procédurale et a appris la programmation objet sur le tas (tard).
Tous les composants d'un site joomla ont généralement besoin d'accéder à l'utilisateur logué. Ceci se fait généralement à l'aide de :
Qui donne accès à tous les paramètres Joomla.
Depuis php7 une notice est donnée si on fait une affectation par référence ($user =& JFactory::getUser()). Ma première question est de savoir si JFactory::getUser() renvoit bien une référence ou si l'objet entier est renvoyé à chaque appel ?
2eme question : un accès à la BDD est-il fait à chaque appel JFactory::getUser() ou Joomla renvoit-il une ressource qu'il a en cache ?
3eme question : si un composant ou autre extension gère des paramètres supplémentaires liés à l'utilisateur la première solution qui me vient est de créer une surchage de userTable:
Mais alors chaque nouvel appel à $extended_user->load() génère un accès BDD pour des paramètres qu'on a déjà chargés. Quelle est la bonne manière d'éviter cela ?
Merci pour vos réponses
Excusez ces questions d'un vieux développeur né à l'ère procédurale et a appris la programmation objet sur le tas (tard).
Tous les composants d'un site joomla ont généralement besoin d'accéder à l'utilisateur logué. Ceci se fait généralement à l'aide de :
Code:
$user = JFactory::getUser();
Depuis php7 une notice est donnée si on fait une affectation par référence ($user =& JFactory::getUser()). Ma première question est de savoir si JFactory::getUser() renvoit bien une référence ou si l'objet entier est renvoyé à chaque appel ?
2eme question : un accès à la BDD est-il fait à chaque appel JFactory::getUser() ou Joomla renvoit-il une ressource qu'il a en cache ?
3eme question : si un composant ou autre extension gère des paramètres supplémentaires liés à l'utilisateur la première solution qui me vient est de créer une surchage de userTable:
Code:
class extensionModelUser extends UserTable { ... public function load(){ $user = JFactory::getUser(); $this->load_extra_params(); //Accès BDD aux paramètres utilisateurs ... } //Toutes les extensions joomla peuvent alors accéder aux paramètres de cette extension: $extended_user = new extensionModelUser(); $extended_user->load();
Merci pour vos réponses
Commentaire