2010-08-09 16 views
1

Je construis un site Web avec la personnalisation de l'utilisateur individuel à l'esprit. Ainsi, par exemple, le client n ° 1 peut dire que je souhaite que cette fonctionnalité soit conçue pour mon compte, puis l'utilisateur n ° 2 peut dire que je souhaite que cette fonctionnalité soit ajoutée à mon compte. Je pensais mettre en œuvre un php si code où lors de l'authentification, ces fonctionnalités seront chargées chaque fois qu'ils se connectent. Mais j'ai des centaines de milliers de personnalisations que je vais faire, ajouter chaque code php pour chaque client sera terrible, y at-il un moyen que je peux le faire plus facilement et avec moins de stress?Personnalisation spécifique à l'utilisateur

Ajouté à partir de commentaires à la réponse particulière: "Fondamentalement, je suis le côté technique d'une entreprise d'intelligence d'affaires.Nous offrons différents rapports et informations avec une douzaine d'outils analytiques.Un utilisateur peut dire que je veux tout ce que vous offrez en plus d'une fonctionnalité personnalisée où une zone particulière de l'entreprise est en cours d'analyse et ensuite télécharger sur leur compte.Comme vous pouvez l'imaginer, il peut y avoir des centaines de telles demandes pour beaucoup de comptes. "

+1

Des centaines de milliers de personnalisations! Exactement ce que sont ces personnalisation et pourquoi ne pouvez-vous pas mettre un booléen pour les éteindre et les allumer dans l'état de la session? –

+2

Cette question est beaucoup trop floue. Vous devez entrer dans plus de détails sur quels aspects seront personnalisés et comment. –

Répondre

0

Votre meilleur pari est soit de concevoir vous-même un cadre, soit de trouver un existant qui supporte ce niveau de personnalisation. Quoi qu'il en soit, ce n'est pas un petit boulot, et le lancement du code pour chaque utilisateur vous rend vulnérable aux problèmes de sécurité et aux bogues causés par les méthodes obsolètes au fil du temps. Demandez-vous quel genre de personnalisations vous faites, et si elles peuvent être extraites du niveau du code par (par exemple) un système de modèle.

+0

Hmmm merci pour les réponses. Laissez-moi vous donner un peu plus d'informations. Supposons que le client n ° 1 dise vouloir un formulaire personnalisé pour son compte et que le client n ° 2 déclare que je souhaite que tous mes utilisateurs puissent télécharger des images et envoyer des messages.Vous cherchez ce genre de personnalisations. –

0

Les conceptions peuvent répondre à certaines exigences génériques. Donc, jusqu'à ce que vous ayez des exigences génériques, vous ne pouvez pas faire la conception. Par exemple, si l'exigence est d'avoir un aspect différent pour chaque client, vous pouvez opter pour un thème dynamique. De même, pour les changements de position pour différents utilisateurs, vous pouvez penser au profilage de l'utilisateur. Pour la langue, vous pouvez également conserver la langue de l'utilisateur dans le profil. Étudiez différentes approches pour la gestion des profils d'utilisateurs, puis faites un pas en avant.

0

Comme d'autres l'ont dit, il est impossible de donner une réponse spécifique sans en savoir beaucoup plus sur ce que vous entendez par "Personnalisation". La seule réponse sensée est celle que vous avez déjà fournie, c'est-à-dire mettre en œuvre autant que possible le comportement de la variable dans les données. Cela peut ne pas être un exercice trivial - sur une application sur laquelle j'ai travaillé, j'ai conçu un moteur d'intelligence artificielle heuristique (en PHP) qui a connu un énorme succès - mais c'était un exercice assez complexe en génie logiciel, et un Je serais hésitant à recommander à tous ceux qui ont besoin de poser la question.

En supposant que pousser toute la logique d'application dans les données n'est pas pratique, alors il y a d'autres approches que vous pourriez envisager, par exemple. diviser les personnalisations dans des fichiers séparés php (ou modèles si sa juste une chose d'affichage):

<?php 

session_start(); 
/* do authentication checks...*/ 
$app=$_SESSION['user_profile'] . '/' . dirname($_SERVER['SCRIPT_NAME'] . '/inc.php'); 
if (! include_once($app)) { 
    include_once('default/'.dirname($_SERVER['SCRIPT_NAME'].'/inc.php'); 
} 
... 

Bien qu'il soit posible pour stocker le code php dans une base de données et eval lors de l'exécution - Je ne recommanderais pas cela comme cela ouvre la porte aux attaques par injection de code. OTOH, il peut s'avérer plus facile d'implémenter les personnalisations dans une langue différente et appeler cela de PHP par exemple. prologue.

C.

+0

OK c'est ce que je veux dire par les personnalisations: Fondamentalement, je suis le côté technique d'une entreprise de renseignement d'affaires. Nous offrons divers rapports et informations ainsi qu'une douzaine d'outils analytiques. Donc, un utilisateur peut dire que je veux tout ce que vous offrez, plus une fonction personnalisée où un domaine particulier de l'entreprise est en cours d'analyse et ensuite télécharger sur leur compte. Comme vous pouvez l'imaginer il peut y avoir des centaines de telles demandes pour beaucoup de comptes. J'espère que cette information aide. –

+1

Sans faire quelques jours de travail d'analyse (non ce n'est pas une offre) c'est encore difficile à dire mais on dirait que vous voulez seulement exposer certains produits à certains utilisateurs - ce qui est simple à faire dans les données avec seulement quelques lignes de code pour gérer les données. – symcbean