phpcompta-contrib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Phpcompta-contrib] contributeur...


From: herve couvelard
Subject: Re: [Phpcompta-contrib] contributeur...
Date: Thu, 11 May 2006 20:54:14 +0200
User-agent: Mozilla Thunderbird 1.0.2 (X11/20051002)

bonsoir,

je reviend à la charge, au rapport, sur mes activités de la journée.

1 - grace à Christophe j'ai finalisé ma regexp pour parser le fichier
-------------------------------------------------------------------
des defines.
------------
Je ne m'en sert pas pour le moment, mais l'objectif est de couper le fichier constant.php en 3 fichiers

1 fichiers avec les constantes mysql
1 fichier avec les contantes pgsql
1 fichier des constantes modifiables facilement
Le grand fichier constant.php

par exemple---------

   constant_modif.php
define ("ERROR_LOG","/www/phpcompta/tmp/phpcompta_error.log");//fichier
define ("_DB_TYPE_","pgsql"); <-- ou  mysql
define ("DEBUG","true");//infos de débugages
define ("DEBUG_TYPE","file");<-oui ouij'ai ajouté un debug sur file
(....)_______________________

    mysql_constant.php
define ("MYSQL_USER","debian-user");
define ("MYSQL_DB","compta");
define ("MYSQL_HOST","localhost");
define ("MYSQL_CONF","account_repository");
(.....)__________________________

      pgsql_constant.php
define ("phpcompta_password","dany");
define ("domaine","");//prefixe des tables ?
(........)_________________________

       constant.php
include ('constant_modif.php');
include (_DB_TYPE_.'_constant.php);
define ("NOERROR",0);
define ("BADPARM",1);
define ("BADDATE",2);
define ("NOTPERIODE",3);
define ("PERIODCLOSED",4);
(.........)__________________________

De cette manière là on peut faire une interface de modification des fichiers de conf [la regexp marche encore merci christophe] en passant ce qui doit/peut être modifié facilement dans un des 3 fichiers accessibles.

2 - j'ai triturer dans le code pour faire du multi base, aujourd'hui j'ai essayé cela :

avant (version simplifiée):


posgres.php------------
function ExecSql($p_connection, $p_string) {
  $ret=pg_query($p_connection,$p_string);
  return $ret;}

fichier---------------------
include('posgres.php');
$Res=ExecSql($this->db,"select * chose");
$Max=pg_NumRows($Res);
  if ( $Max == 0 ) return null;
  for ($i=0;$i<$Max;$i++) {
    $array[]=pg_fetch_array($Res,$i);
 $tot_cred+=$array[$i]['cred_montant'] ;}
(.....................)--------------



test_actuel (version simplifiée)

pgsql_base.php
include('postgres.php')
function Exec_Sql($p_connection, $p_string) {
  $ret=pg_query($p_connection,$p_string);
        $res=pg_NumRows($ret);
         for ($i=0;$i<$res;$i++) {
         $row[$i]=pg_fetch_assoc($ret,$i);
         }
  return (array($res,$row));
}

fichier-------------------------
include(_DB_TYPE_.'_base.php');<- mysql/pgsql
$Res=Exec_Sql($this->db,"select * chose");
  if ( $Res[0] == 0 ) return null;
  for ($i=0;$i<$Res[0];$i++) {
 $tot_cred+=$Res[1][$i]['cred_montant'] ;}
(.....................)--------------------

L'objectif était de ne plus se prendre la tête avec les pg_ et mysql_.

Demain je vais faire le test en absorbant complètement le sql pour voir. Peut être ce sera plus prolifique, peut-être il faut les 2, affaires à suivre.

ce système marche pour pgsql et mysql, connexion à la base,choix dossier, comptabilité,menu compta. J'ai commencé à intégrer les css pour voir dans le menu général (celui du haut) cela rentre pas mal, cela ne devrait pas poser de problème.

Je n'ai pas encore abordé le dossier comptable et je n'ai pas encore touché à l'installation, de toute façon c'est pour voir comment faire et dans quel ordre de bataille aborder la chose.

3 - au niveau graphique, rien de nouveau, juste 2 pictos en plus., revoila le lien mis a jour:
http://www.patrimoine-pour-demain.com/php_compta.png

4 - j'aurais tendance à proposer de passer certaines bases de données en fichier textes plats, par exemple les préférences, tout ce qui n'est pas sensible et qui ne justifie pas un BDD. Je n'ai encore rien fait de la sorte, mais un bon filegetcvs ()... et hop directement un formulaire et hop directement un fputs... cela allègerait pas mal la bdd et simplifierais le code.


5 - pour le fun la modif pour le débug par file dans le fichier debug.php
---------------------------------------------------
 if ( DEBUG=='true' ) {

> JUSTE ICI
>  if (DEBUG_TYPE=='file'){ << celui dans constant.php
>  $fdebug=fopen(ERROR_LOG,"a+");
>    fwrite($fdebug,date("Ymd H:i:s").$file.' : '.$line.' _ >'.$msg."\n");
>    fclose($fdebug);}
>  else{
>=====
  (suite ....)
    $password=phpcompta_password;
    $l_Db="dbname=log user='phpcompta' (......)-----

c'était plus facile pour moi de pouvoir suivre avec un tail -f du fichier error_log.


donc voila, j'attend avec impatience des critiques bonnes ou mauvaises et des idées......

je n'ai a priori pas de question sauf : pourquoi 2 bases de données modèles existantes,au lieu de créer la base de donné à la demande suivant un modèle script ? est-ce pour utiliser la fonction d'héritage de pgsql ? (si si je me documente).

hervé


















reply via email to

[Prev in Thread] Current Thread [Next in Thread]