Modèles de conception PHP

  • ScottG
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Juil 06, 2010
  • Messages: 263
  • Status: Online

Message Janvier 29th, 2013, 11:24 am

Ive été la recherche beaucoup aujourd'hui parce que Ive rencontré quelqu'un en me disant que dans la prochaine version de PHP qu'ils pourraient être dépréciation mysql_connect, qui est ce que j'utilise actuellement dans ma classe de base de données.

Ma classe de base de données est basée sur le le modèle de conception singleton, qui, dans mes recherches, Ive, rencontré des gens qui claquent ce modèle de conception dans la saleté. Je suis allé avec cette tendance dans le temps il y a parce qu'elle réduit la connexion à la base aérienne en empruntant une connexion si déjà au lieu de faire une nouvelle installation de. Cela a accéléré beaucoup de mes projets, mais maintenant je suis dans le doute à ce sujet.

Je continue à voir les gens et le site vous indiquant d'utiliser PDO Im très familier avec ma classe donc si je suis allé avec PDO Id probablement fasse passer par le biais de fonctions de type continuer mon style d'utilisation db actuel d'appels.

Si...des idées ?
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Janvier 29th, 2013, 11:24 am

  • ScottG
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Juil 06, 2010
  • Messages: 263
  • Status: Online

Message Avril 2nd, 2013, 10:28 am

Ive a commencé à franchir le pas en changeant ma classe de base de données PHP, je sais que php PDO classe serait bien sur ses propres. Ma classe de connexion de base de données a été extrêmement facile à utiliser et très souple et il y a plusieurs fonctions dans ma classe qui sont dans la classe PDO. Mais juste passer à la classe PDO serait la pire chose à faire dans la mesure où la compatibilité descendante. Si Im développant une classe wrapper qui ne cassera pas les anciens projets et peut-être dans des versions ultérieures Ill progressivement la classe wrapper.

ALORS...chose, c'est ma classe utilise une fonction appelée in_quotes() et AOP possède une fonction appelée quotes() mais aussi a prepare() , de la documentation sur les AOP, on dirait que vous pouvez utiliser quotes() si vous n'utilisez pas prepare() qui c'est bien parce que je peux faire rapidement un passage de la fonction dans la classe wrapper pour y faire face, mais en utilisant prepare() dirait Id dois changer beaucoup plus de code pour le faire fonctionner correctement. Donc la question, j'ai apporter jusqu'à le peuple PHP sur ce site est ce qui est mieux le poulet ou le eg...je veux dire préparer ou citations ?
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8924
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Avril 2nd, 2013, 3:26 pm

LOL, Eh bien j'aime poulet plus, autant que ce qui est venu en premier, ce serait une grande question:)

Vers les modèles de conception, il existe de nombreux modèles de conception là-bas et les modèles de conception différentes conviennent mieux aux différentes situations. Je comprends pourquoi vous pouvez choisir le modèle de conception singleton pour votre classe de base de données et si sa été fonctionne bien pour vous je dirais continuer avec ça. Il n'y a pas de réponse « juste » ou « non », parfois il descend aux préférences trop. Si la vitesse est la seule chose vous basez la réponse, alors il peut y avoir un droit ou une réponse erronée quant à quel modèle de conception pourrait être le plus rapide. Je pense que le modèle de conception singleton pourrait être bon pour éviter de dupliquer ou nombreux objets d'être créé qui pourraient consommer de la mémoire ou de ressources.

Dans mes projets, il ya des moments que j'ai un script qui a besoin de faire plus d'une connexion à la base, donc un modèle de conception singleton n'est pas utilisé pour ma situation car j'aurai souvent quelques objets qui représentent les différentes bases de données et le besoin des deux en même temps.

Pour votre dernière question, évidemment le quote() est une fonction très simple qui fait son travail, alors que la préparation est beaucoup plus compliquée et prend également en charge les marqueurs de paramètres. Encore une fois il n'y a aucune bonne réponse ici, tout dépend de combien vous voulez faire vous-même, ou fonctionne si vous souhaitez utiliser ce handle un peu pour vous. Pour votre situation et étant rétrocompatible, mais, vous pourriez juste coller avec la fonction simple quote() et tout faire vous-même en ce qui concerne la préparation des instructions SQL. Puis, vous savez exactement ce qui se passe et serait probablement plus facile de trouver un moyen de le faire et être rétro-compatible à la fois.

Juste mon avis;)
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • ScottG
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Juil 06, 2010
  • Messages: 263
  • Status: Online

Message Avril 3rd, 2013, 8:18 am

C'est ce que je pensais de même, le poulet est mieux ! J'allais juste utiliser les guillemets, mais je voulais quand même se poser la question avant que je l'ai fait pour voir d'autres opinions, qui a peut-être influencé moi sur quelle direction aller. Ive a également envisagé amerrissage forcé la conception Singleton. Faire que je devrais juste à un global remplacer sur les sites qui obtiennent la nouvelle classe pour la connexion de base de données. qui n'est pas à dur.
  • ScottG
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Juil 06, 2010
  • Messages: 263
  • Status: Online

Message Avril 3rd, 2013, 11:51 am

Une chose que je suis tombé sur aujourd'hui c'est un wrapper de gestionnaire de base de données de singleton qui permettrait plusieurs connexions de base de données si vous avez utilisé une conception singleton. On dirait que je pourrais aussi utiliser que pour les autres modèles de conception, même si elle n'est pas nécessaire avec plus autres modèles de conception, si j'ai abandonner la conception singleton. Je pourrais utiliser cette enveloppe pour la compatibilité descendante
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8924
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Avril 3rd, 2013, 12:44 pm

Sonne alors parfait pour vous si vous décidez de changer:)
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • ScottG
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Juil 06, 2010
  • Messages: 263
  • Status: Online

Message Avril 5th, 2013, 8:25 am

OK, donc Ive fini écriture/réécriture de mes classes de base de données. Ma classe de base de données principale j'ai fait dans un style de classe PHP base et abandonné la conception singleton. Que classe utilise le le PHP PDO donc il agit essentiellement comme un wrapper, donc je n'ai pas d'apprendre de nouvelles fonctions pour utiliser la base de données. Puis, j'ai également un wrapper de singleton pour fournir 100 % de code compatible en arrière à mes anciens projets. Ce wrapper est progressivement dans mes nouveaux projets.

Afficher de l'information

  • Total des messages de ce sujet: 7 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 191 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC