[Architecture] Utiliser une classe en dev / test et une autre en prod

Utiliser une classe en dev / test et une autre en prod [Architecture] - PHP - Programmation

Marsh Posté le 16-11-2009 à 20:48:59    

Bonjour,
 
Je cherche une sorte de design pattern qui permettrai d'utiliser en DEV une certaine classe, et en PROD une autre (les classes doivent avoir les même méthodes / fonctionnalités / prototypes, mais celle de prod est plus légère, effectue moins de vérifications). Seul le code d'initialisation doit changer. Je ne souhaite pas supprimer tous les appels au milieu du code.
 
Un des objectifs est de (faire) charger (par PHP) moins de code à l'exécution. Les classes de dév étant "grosses" et les classes de production "light".
 
Comme exemples, on pourrait citer :
- Une classe générant des requêtes SQL qui vérifie les types de champs et leur existence ou non.
- Une classe d'erreur qui affiche les erreurs ou les logue (ça encore ça peut se gérer uniquement par la configuration, mais c'est un exemple).
- Une classe de debug qui fait son job en dev et est inactive en prod.
 
Vers quoi dois-je m'orienter ?
 
D'avance merci pour vos réponses.
 
Savageman.

Reply

Marsh Posté le 16-11-2009 à 20:48:59   

Reply

Marsh Posté le 16-11-2009 à 23:09:50    

Ce qui veut dire que tu n'auras pas tout le temps le meme comportement, ce qui signifie bugs :/

Reply

Marsh Posté le 16-11-2009 à 23:46:59    

Pas du tout, j'ai pas envie de tout loguer bêtement en dev ni d'afficher les erreurs en prod...
Les fonctionnalités restent identiques d'un point de vue fonctionnel.


Message édité par Le_nain le 16-11-2009 à 23:47:26
Reply

Marsh Posté le 17-11-2009 à 00:02:42    

avec les interfaces tu pourrais avoir une cohérence.


Message édité par stealth35 le 17-11-2009 à 10:09:41
Reply

Marsh Posté le 17-11-2009 à 22:41:22    

perso je fais avec des abstracts parce qu'il y a toujours du code commun

Reply

Marsh Posté le 17-11-2009 à 23:05:11    

Interface + Factory


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 18-11-2009 à 00:27:37    

Oui, Interface + Factory ça m'a l'air cool ! :)

Reply

Marsh Posté le 18-11-2009 à 08:17:24    

ça me parait super casse-gueule, comme principe, d'avoir des classes séparées...Je comprends pas bien ce qui t'empêche de gérer ça via la conf...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2009 à 22:19:00    

Charger moins de code. Ca sera fait via une conf au final. Certaines parties (classes) seront optionnelles.

Reply

Marsh Posté le 18-11-2009 à 22:52:02    

T'as qu'à te la jouer bourrin, faire un système qui vire les morceaux debug ? Style ifdef/endif

 

Genre t'as une fonction comme ça :

Code :
  1. function pouet()
  2. {
  3.    bidule = 'super';
  4.    machin();
  5.    truc();
  6.  
  7.    // DEBUG
  8.    if(defined('DEBUG')) {
  9.      log('message');
  10.      bidule_debug();
  11.    }
  12.    // ENDDEBUG
  13.  
  14.    ok();
  15.    return 'cool';
  16. }


Et après t'as un script qui vire les blocs DEBUG/ENDDEBUG ?

 

Maintenant de toute manière, ça ne changera pas extrêmement grand chose, à moins que ton code de DEBUG soit ultra-lourd (ce serait un problème à vérifier d'abord).

 

Ensuite si t'as un opcode-cache sur ton serveur, le problème ne se pose même plus.


Message édité par FlorentG le 18-11-2009 à 22:52:21
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed