JeuWeb - Crée ton jeu par navigateur
Framework maison - Où placer la connexion à la base de données - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Framework maison - Où placer la connexion à la base de données (/showthread.php?tid=5605)

Pages : 1 2 3


Framework maison - Où placer la connexion à la base de données - popayan - 01-08-2011

Bonjour,

Pour m'amuser et en attendant de retrouver un projet sérieux, je m' "amuse" à essayer de faire un framework maison. Je ne fais pas ça pour l'utiliser ensuite (les vrais framework sont la pour ça) mais je trouve que ça peut être un exercice sympa.

J'ai déjà bien avancé sur l'architecture général mais un point en particulier me pose problème : où placer la connexion à la base de données? J'ai été voir un peu partout mais pour le moment aucune solution me plait... C'est pourquoi, je viens demander vos avis sur la question (il me semble que certain ont déjà fait ce genre de chose...)

Pour info, je pars sur quelque chose d'assez simple :

une classe Application qui va englober toute l'appli, une classe Dispatcher pour récupérer les routes et analyser l'url, on ajoute ensuite le controlleur qui appelle les modèles utilisés...


RE: Framework maison - Où placer la connexion à la base de données - Viciousity - 01-08-2011

Si je devais créer mon framework :
Code :
app/
||_controllers
|| ||_users_controller.php
||_helpers
|| ||_users_helper.php
||_models
|| ||_User.php
||_views
   ||_layouts
      ||_application.html.motttemplate
   ||_users/
      ||_ user_action.html.mottemplate
config/
||_database.php (contiendrait les identifiants, etc...)
||_environments
   ||_development.php
   ||_test.php
   ||_production.php
lib/
||_database_orm.php (classe d'abstraction SQL, doctrine?)

En gros un dossier pour ce qui est MVC.
Un dossier de configuration pur.
Un dossier pour tes classes dispachers, acces BDD, etc Smile


RE: Framework maison - Où placer la connexion à la base de données - Sephi-Chan - 01-08-2011

Ce qui ne répond pas du tout à la question qui est : où effectuer la connexion à la base de données ? :p


RE: Framework maison - Où placer la connexion à la base de données - pascal - 01-08-2011

On fait comment dans Ruby on Rails ? :-P


RE: Framework maison - Où placer la connexion à la base de données - Viciousity - 01-08-2011

Ben la connexion se faisant dans la librairie de l'ORM Smile (sa me semblait logique Sephi haha Big Grin)

Dans RoR, si je ne m'abuse, ce sont les gems de l'ORM qui ne nécessite qu'un fichier de configuration (host, user, db, password, port) qui s'occupent de tout ^^
Fin je comprend ptet pas la question haha Big Grin


RE: Framework maison - Où placer la connexion à la base de données - Arius Vistoon - 01-08-2011

si tu as un "modèle" c'est la (et pas ailleurs) que tu le fais, et pour etre plus précis dans une classe abstraite avec le bon design pattern qui va bien, et implémenter par toutes les autres


RE: Framework maison - Où placer la connexion à la base de données - Viciousity - 01-08-2011

Bah pas forcemment, un modele pour moi c'est juste les infos relatives a celui ci :

Mon modele :


class User

def self.recent
all.where(:created_at < 2.day.ago)
end

end

Mon controlleur :


class PublicController

def index
@recent_users = User.recent # Ce qui fera appel a la fonction.
end

end

Mon fichier de configuration.


development:
host: localhost
port: 1234
user: Username
password: MyPassword
db: development

Derriere, c'est l'ORM qui se charge de la configuration.


RE: Framework maison - Où placer la connexion à la base de données - Arius Vistoon - 01-08-2011

le modele c'est tout ce qui est relative a la base de donnée. c'est a dire que tu peux faire tourner ton application, juste avec cette couche (ok, il y a pas de graphisme). Mais cela te permet entre autre de pouvoir dans l’absolu faire du REST (entre autres) et de permettre a des applications tiers d'attaquer ton jeu sans la couche graphique pour développer une extension officiel ou de fan pour les fans.
Si tu ne mets pas ta connexion dans le modele, déja, ton modele ne fonctionne plus, ce qui en soit est balo et cela t'oblige a inclure ta librairie (ou autre) de connexion voir de la redeveloppé expres pour une utilisation via REST.
Par contre, le type de connection et le type de base de donnée doit etre comme tu le fait dans un fichier de config a part

EDIT :
dans un autre sujet on parlé de test, ben avec la connexion dans le modele, le stests sont facile a faire en mode ligne de commande (eventuellement commander par un crontab pour gérer la non-regression journalièr ou un truc du genre)


RE: Framework maison - Où placer la connexion à la base de données - Viciousity - 01-08-2011

D'un autre côté, recréer entierement un système de mappage de données est un peu stupide vu ce que l'on trouve actuellement en terme de performance et rapidité (mangoDB par exemple)


RE: Framework maison - Où placer la connexion à la base de données - Arius Vistoon - 01-08-2011

(01-08-2011, 09:18 PM)Viciousity a écrit : D'un autre côté, recréer entièrement un système de mappage de données est un peu stupide vu ce que l'on trouve actuellement en terme de performance et rapidité (mangoDB par exemple)
si c'était stupide, je ne le ferais pas Wink